diff --git a/.github/ISSUE_TEMPLATE/new-term.yml b/.github/ISSUE_TEMPLATE/new-term.yml index 6c19b2ad27..309ddcdccd 100644 --- a/.github/ISSUE_TEMPLATE/new-term.yml +++ b/.github/ISSUE_TEMPLATE/new-term.yml @@ -38,7 +38,7 @@ body: required: true - label: I understand that maintainers will assess if the term should be part of the Glossary. (Please be patient) required: true - - label: I want to work on this term. (If not checked, maintainers will assign another volunteer) + - label: I want to work on this term and confirm that I meet the criteria as outlined in "[who can contribute](https://glossary.cncf.io/contribute/#who-can-contribute)". (If not checked, maintainers will assign another volunteer) required: false - type: textarea id: note diff --git a/.github/ISSUE_TEMPLATE/update-term.yml b/.github/ISSUE_TEMPLATE/update-term.yml index b7ea7f4e17..bedce32845 100644 --- a/.github/ISSUE_TEMPLATE/update-term.yml +++ b/.github/ISSUE_TEMPLATE/update-term.yml @@ -28,7 +28,7 @@ body: options: - label: I understand that maintainers will confirm if the term should be updated. (Please be patient) required: true - - label: I want to work on this suggestion. (If not checked, maintainers will assign another volunteer) + - label: I want to work on this suggestion and confirm that I meet the criteria as outlined in "[who can contribute](https://glossary.cncf.io/contribute/#who-can-contribute)".. (If not checked, maintainers will assign another volunteer) required: false - type: textarea id: note diff --git a/.github/auto-comment-config.yaml b/.github/auto-comment-config.yaml new file mode 100644 index 0000000000..3832b13bb3 --- /dev/null +++ b/.github/auto-comment-config.yaml @@ -0,0 +1,7 @@ +label_mappings: + - labels: + - hold + comment: Wait, please do not proceed with this yet. + - labels: + - lang/en + comment: To see where this is in the review pipeline and follow the progress, please look at the [definition review board](https://github.com/orgs/cncf/projects/26/views/1). diff --git a/.github/labeler.yml b/.github/labeler.yml index dfd5e82784..b24a93c7b0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,34 +1,40 @@ lang/ar: -- content/ar/* +- content/ar/** lang/bn: -- content/bn/* +- content/bn/** lang/de: -- content/de/* +- content/de/** lang/en: -- content/en/* +- content/en/** lang/es: -- content/es/* +- content/es/** lang/fr: -- content/fr/* +- content/fr/** + +lang/hi: +- content/hi/** lang/it: -- content/it/* +- content/it/** -lang/hi: -- content/hi/* +lang/ja: +- content/ja/** lang/ko: -- content/ko/* +- content/ko/** lang/pt: -- content/pt-br/* +- content/pt-br/** + +lang/tw: +- content/zh-tw/** lang/zh: -- content/zh-cn/* +- content/zh-cn/** diff --git a/.github/settings.yml b/.github/settings.yml index fc1e2be858..8fe8d27afa 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -31,24 +31,27 @@ collaborators: permission: admin - username: jihoon-seo - permission: maintain + permission: admin - username: iamNoah1 - permission: maintain + permission: admin - username: thetwopct permission: push # English approvers (approver for all files in repository) - + - username: nate-double-u + permission: admin + + - username: castrojo + permission: push # Localization approvers + # l10n ko approvers # Note: seokho-son is both Maintainer (maintain) and Korean approver (push) # Note: jihoon-seo is both Maintainer (maintain) and Korean approver (push) - - username: Eviekim - permission: push - username: yunkon-kim permission: push @@ -70,17 +73,22 @@ collaborators: - username: Garima-Negi permission: push - - username: sayantani11 + - username: jayesh-srivastava + permission: push + + - username: abhay-raj19 permission: push - - username: anubha-v-ardhan + - username: aj11anuj permission: push - - username: jayesh-srivastava + - username: kumarankit999 + permission: push + + - username: bishal7679 permission: push # l10n de approvers - # Note: CathPag is both Maintainer (maintain) and de approver (push) # Note: iamNoah1 is both Maintainer (maintain) and de approver (push) - username: DaveVentura permission: push @@ -115,16 +123,16 @@ collaborators: permission: push # l10n bn approvers - - username: mitul3737 + - username: Arindam200 permission: push - - username: Mouly22 + - username: Imtiaz1234 permission: push - - username: ikramulkayes + - username: mitul3737 permission: push - - username: Imtiaz1234 + - username: sajibAdhi permission: push # l10n es approvers @@ -143,7 +151,7 @@ collaborators: - username: 92nqb permission: push - # l10n zh approvers + # l10n zh-cn approvers - username: hanyuancheung permission: push @@ -166,6 +174,12 @@ collaborators: - username: Krast76 permission: push + - username: sestegra + permission: push + + - username: guillaumebernard84 + permission: push + # l10n ur approvers - username: Saim-Safdar permission: push @@ -173,6 +187,54 @@ collaborators: - username: waleed318 permission: push + # l10n zh-tw approvers + - username: hwchiu + permission: push + + - username: johnlinp + permission: push + + - username: pichuang + permission: push + + - username: ydFu + permission: push + + # l10n ja approvers + - username: inductor + permission: push + + - username: kaitoii11 + permission: push + + - username: naonishijima + permission: push + + - username: yuichi-nakamura + permission: push + + # l10n tr approvers + - username: aliok + permission: push + + - username: halil-bugol + permission: push + + - username: rwxdash + permission: push + + - username: eminalemdar + permission: push + + # l10n ru approvers + - username: shurup + permission: push + + - username: kirkonru + permission: push + + - username: tym83 + permission: push branches: @@ -193,6 +255,8 @@ branches: - seokho-son - iamNoah1 - jihoon-seo + - nate-double-u + - castrojo teams: [] enforce_admins: null required_linear_history: null @@ -209,7 +273,6 @@ branches: # Ko approvers users: - seokho-son - - Eviekim - jihoon-seo - yunkon-kim teams: [] @@ -247,9 +310,11 @@ branches: # hi approvers users: - Garima-Negi - - sayantani11 - - anubha-v-ardhan - jayesh-srivastava + - abhay-raj19 + - aj11anuj + - kumarankit999 + - bishal7679 teams: [] enforce_admins: null required_linear_history: null @@ -321,10 +386,10 @@ branches: apps: [] # bn approvers users: - - mitul3737 - - Mouly22 - - ikramulkayes + - Arindam200 - Imtiaz1234 + - mitul3737 + - sajibAdhi teams: [] enforce_admins: null required_linear_history: null @@ -349,7 +414,7 @@ branches: enforce_admins: null required_linear_history: null - # l10n branch for zh contents only + # l10n branch for zh-cn contents only - name: dev-zh protection: required_pull_request_reviews: @@ -358,7 +423,7 @@ branches: required_status_checks: null restrictions: apps: [] - # zh approvers + # zh-cn approvers users: - hanyuancheung - Jacob953 @@ -382,6 +447,8 @@ branches: - huats - fydrah - Krast76 + - sestegra + - guillaumebernard84 teams: [] enforce_admins: null required_linear_history: null @@ -402,3 +469,78 @@ branches: teams: [] enforce_admins: null required_linear_history: null + + # l10n branch for zh-tw contents only + - name: dev-tw + protection: + required_pull_request_reviews: + required_approving_review_count: 2 + require_code_owner_reviews: true + required_status_checks: null + restrictions: + apps: [] + # zh-tw approvers + users: + - hwchiu + - johnlinp + - pichuang + - ydFu + teams: [] + enforce_admins: null + required_linear_history: null + + # l10n branch for ja contents only + - name: dev-ja + protection: + required_pull_request_reviews: + required_approving_review_count: 2 + require_code_owner_reviews: true + required_status_checks: null + restrictions: + apps: [] + # ja approvers + users: + - inductor + - kaitoii11 + - naonishijima + - yuichi-nakamura + teams: [] + enforce_admins: null + required_linear_history: null + + # l10n branch for tr contents only + - name: dev-tr + protection: + required_pull_request_reviews: + required_approving_review_count: 2 + require_code_owner_reviews: true + required_status_checks: null + restrictions: + apps: [] + # tr approvers + users: + - aliok + - halil-bugol + - rwxdash + - eminalemdar + teams: [] + enforce_admins: null + required_linear_history: null + + # l10n branch for ru contents only + - name: dev-ru + protection: + required_pull_request_reviews: + required_approving_review_count: 2 + require_code_owner_reviews: true + required_status_checks: null + restrictions: + apps: [] + # ru approvers + users: + - shurup + - kirkonru + - tym83 + teams: [] + enforce_admins: null + required_linear_history: null diff --git a/.github/workflows/auto-comment.yml b/.github/workflows/auto-comment.yml new file mode 100644 index 0000000000..9a977c5c89 --- /dev/null +++ b/.github/workflows/auto-comment.yml @@ -0,0 +1,70 @@ +name: Auto Comment on Labeled PR + +on: + pull_request_target: + types: + - labeled + - unlabeled + +permissions: + pull-requests: write + +jobs: + comment: + runs-on: ubuntu-latest + steps: + # Checkout the repository code to the runner. + - name: Checkout code + uses: actions/checkout@v4 + + # Create a bin directory in the runner's home + - name: Create bin directory + run: | + mkdir -p $HOME/bin + echo "$HOME/bin" >> $GITHUB_PATH + + # Install the latest jq and yq from GitHub releases + - name: Install jq and yq + run: | + wget https://github.com/jqlang/jq/releases/latest/download/jq-linux-amd64 -O $HOME/bin/jq + chmod +x $HOME/bin/jq + wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O $HOME/bin/yq + chmod +x $HOME/bin/yq + + # Main logic for adding comments based on labels. + - name: Comment on PR based on external config + run: | + # Fetch the labels attached to the PR from the GitHub event JSON. + pr_labels=$(jq -r '.pull_request.labels[] | .name' "$GITHUB_EVENT_PATH" | tr '\n' ' ') + + # Define the path to the external YAML config file. + config_file=".github/auto-comment-config.yaml" + + # Get the number of label-comment mappings defined in the config file. + num_mappings=$(yq e '.label_mappings | length' "$config_file") + + # Loop through each label-comment mapping in the config file. + for (( i=0; i<$num_mappings; i++ )); do + # Fetch the labels and comment for the current mapping. + mapfile -t labels < <(yq e ".label_mappings[$i].labels[]" "$config_file") + comment=$(yq e ".label_mappings[$i].comment" "$config_file") + + # Check if all required labels from the current mapping are present in the PR. + for label in "${labels[@]}"; do + if [[ ! $pr_labels == *"$label"* ]]; then + echo "One or more required labels not found. Skipping." + continue 2 # Skip to the next iteration of the outer loop. + fi + done + + # Fetch the PR number from the GitHub event JSON. + pr_number=$(jq -r '.pull_request.number' "$GITHUB_EVENT_PATH") + + # If all required labels are found, add the comment to the PR. + echo "All required labels found. Adding comment." + gh pr comment "$pr_number" --body "$comment" + + done + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash diff --git a/.github/workflows/check-outdated-terms.yaml b/.github/workflows/check-outdated-content.yaml similarity index 76% rename from .github/workflows/check-outdated-terms.yaml rename to .github/workflows/check-outdated-content.yaml index f76fb3fe4a..12349d9b26 100644 --- a/.github/workflows/check-outdated-terms.yaml +++ b/.github/workflows/check-outdated-content.yaml @@ -1,21 +1,22 @@ -# This workflow will check if localized terms are outdated or not -# by comparing English terms in the old branch and the latest branch. -name: Check outdated terms +# This workflow will check if a localized content is outdated or not +# by comparing English content in the old branch and the latest branch. +name: Check outdated content on: pull_request: branches: - - 'dev-ko' # add other branches or use wildcard 'dev-**' + - 'dev-ko' + - 'dev-es' paths: - 'content/en/**.md' jobs: - check-outdated-terms: - name: Check outdated terms + check-outdated-content: + name: Check outdated content - # if: contains(fromJSON('["dev-ko", "dev-xx"]'), github.base_ref) + if: contains(fromJSON('["dev-ko","dev-es"]'), github.base_ref) # Ref: https://docs.github.com/en/actions/learn-github-actions/expressions - if: github.base_ref == 'dev-ko' + #if: github.base_ref == 'dev-ko' # Condition to run this workflow on the upstream repository #if: github.repository == 'cncf/glossary' @@ -38,21 +39,26 @@ jobs: # Set output direcory OUTPUT_DIR="./outdated" - # Set L10n directory and code + # Set L10n code + L10N_CODE="${L10N_BRANCH//dev-/}" + echo "(DEBUG) L10N Code: ${L10N_CODE}" + + # Set L10n directory case "${L10N_BRANCH}" in - dev-ko) - L10N_DIR="./content/ko/" - L10N_CODE="ko" + dev-pt) + L10N_DIR="content/pt-br/" + ;; + dev-zh) + L10N_DIR="content/zh-cn/" + ;; + dev-tw) + L10N_DIR="content/zh-tw/" + ;; + *) + L10N_DIR="content/${L10N_CODE}/" ;; - - #dev-pt) - #L10N_DIR="./content/pt-br/" - #L10N_CODE="pt" - #;; esac - echo "(DEBUG) L10N Directory: ${L10N_DIR}" - echo "(DEBUG) L10N Code: ${L10N_CODE}" # Set L10N_DIR, L10N_CODE, and OUTPUT_DIR as environment variables # Ref: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable @@ -61,7 +67,7 @@ jobs: echo "OUTPUT_DIR=${OUTPUT_DIR}" >> $GITHUB_ENV - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 # fetch all history for all tags and branches @@ -89,22 +95,31 @@ jobs: # Get the lastest branch name from 'GITHUB_REF' # The latest branch can be 'upstream/main' or 'forked/dev-ko' (rebased) LATEST_BRANCH=${GITHUB_REF#refs/} - echo "(DUBUG) LATEST_BRANCH: ${LATEST_BRANCH}" + echo "(DEBUG) LATEST_BRANCH: ${LATEST_BRANCH}" # Get the old branch from 'github.base_ref' # The old branch can be 'upstream/dev-ko' OLD_BRANCH="origin/${{github.base_ref}}" - echo "(DUBUG) OLD_BRANCH: ${OLD_BRANCH}" + echo "(DEBUG) OLD_BRANCH: ${OLD_BRANCH}" + + L10N_INFO_JSON=$(cat < ${OUTPUT_DIR}/L10N_INFO.json elif [[ ! -d $OUTPUT_DIR ]]; then echo "$OUTPUT_DIR already exists but is not a directory" 1>&2 fi - # Check outdated only if there is a localized term - # Loop files in a localization directory, which is ${L10N_DIR} (e.g., ./content/ko/) + # Check outdated only if a localized content exists + # Loop files in a localization directory, which is ${L10N_DIR} (e.g., content/ko/) echo "(DEBUG) Check outdated" for L10N_FILE_PATH in $(find ${L10N_DIR} -name '*.md'); do echo "(DEBUG) L10N_FILE_PATH: ${L10N_FILE_PATH}" @@ -118,16 +133,16 @@ jobs: echo "(DEBUG) FILE_DIR: ${FILE_DIR}" echo "(DEBUG) FILE_NAME: ${FILE_NAME}" echo "(DEBUG) Localized file path: $L10N_FILE_PATH" - echo "(DEBUG) Original file path: ./content/en/${FILE_PATH}" + echo "(DEBUG) Original file path: content/en/${FILE_PATH}" # Create subdirectories mkdir -p ${OUTPUT_DIR}/${FILE_DIR} - # Actually compare between the old and lastest English terms and log diff in the file - if [[ -f "./content/en/${FILE_PATH}" ]]; then + # Actually compare between the old and lastest English content and log diff in the file + if [[ -f "content/en/${FILE_PATH}" ]]; then # File exists # Check changes - git diff ${OLD_BRANCH}..${LATEST_BRANCH} -- ./content/en/${FILE_PATH} > temp.diff + git diff ${OLD_BRANCH}..${LATEST_BRANCH} -- content/en/${FILE_PATH} > temp.diff if [[ -s "temp.diff" ]]; then echo "(DEBUG) ${FILE_PATH} is outdated." @@ -135,7 +150,7 @@ jobs: fi else - echo "(DEBUG) ${FILE_PATH} dose not exist." + echo "(DEBUG) ${FILE_PATH} does not exist." # File dose not exist (e.g, changed, renamed or removed) echo "Could not find ${FILE_PATH} in content/en/" > ${OUTPUT_DIR}/${FILE_PATH} echo "Need to check if it has been changed, renamed or removed" >> ${OUTPUT_DIR}/${FILE_PATH} @@ -158,4 +173,4 @@ jobs: # content-filepath: ${{ steps.checker.outputs.output_path }} # labels: | # outdated -# lang/ko \ No newline at end of file +# lang/ko diff --git a/.github/workflows/es-spellcheck.yml b/.github/workflows/es-spellcheck.yml index 41ed50f6a4..f066a1a8b3 100644 --- a/.github/workflows/es-spellcheck.yml +++ b/.github/workflows/es-spellcheck.yml @@ -23,12 +23,12 @@ jobs: name: Run PySpelling tool to verify spanish spelling issues runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check word list sort run: | set -o errexit diff content/es/.wordlist.txt <(LC_ALL= sort -f content/es/.wordlist.txt) - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.30.0 + uses: rojopolis/spellcheck-github-actions@0.35.0 with: config_path: content/es/.spellcheck.yml diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 8ba5ccf56a..3467b45dab 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -15,6 +15,6 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/post-outdated-terms-report.yaml b/.github/workflows/post-outdated-content-report.yaml similarity index 56% rename from .github/workflows/post-outdated-terms-report.yaml rename to .github/workflows/post-outdated-content-report.yaml index 6a49b7328f..d36cda0b7b 100644 --- a/.github/workflows/post-outdated-terms-report.yaml +++ b/.github/workflows/post-outdated-content-report.yaml @@ -1,16 +1,16 @@ -# This workflow will post outdated terms report +# This workflow will post a report of outdated content # by using data from previous workflows. -name: Post outdated terms report +name: Post outdated content report on: workflow_run: - workflows: ["Check outdated terms"] + workflows: ["Check outdated content"] types: - completed jobs: post-outdated-report: - name: Post outdated terms report + name: Post outdated content report if: ${{ github.event.workflow_run.conclusion == 'success' }} @@ -53,37 +53,42 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: github_token: ${{secrets.GITHUB_TOKEN}} - workflow: check-outdated-terms.yaml + workflow: check-outdated-content.yaml workflow_conclusion: success - name: Set up environment variables from the output shell: bash run: | + echo "(DEBUG) Install 'jq' to read json" + sudo apt-get install -y jq + echo "(DEBUG) Display files and directories" tree # Set the last changed directory as the output directory OUTPUT_DIR=$(ls -tp | head -1) - # Extract L10N code from the directory name - # ${MYVAR%%-*}: retain the part before the first '-' - L10N_CODE=${OUTPUT_DIR%%-*} + # Read L10N_DIR and L10N_CODE from L10N_INFO.json + L10N_DIR=$(jq -r '.L10N_DIR' < ${OUTPUT_DIR}/L10N_INFO.json) + L10N_CODE=$(jq -r '.L10N_CODE' < ${OUTPUT_DIR}/L10N_INFO.json) - # Count outdated terms - OUTDATED_TERMS_COUNT=$(ls $OUTPUT_DIR | wc -l) + # Count outdated content + OUTDATED_CONTENT_COUNT=$(ls $OUTPUT_DIR | wc -l) echo "(DEBUG) OUTPUT_DIR: ${OUTPUT_DIR}" + echo "(DEBUG) L10N_DIR: ${L10N_DIR}" echo "(DEBUG) L10N_CODE: ${L10N_CODE}" - echo "(DEBUG) OUTDATED_TERMS_COUNT: ${OUTDATED_TERMS_COUNT}" + echo "(DEBUG) OUTDATED_CONTENT_COUNT: ${OUTDATED_CONTENT_COUNT}" - # Set OUTPUT_DIR, L10N_CODE, and OUTDATED_TERMS_COUNT as environment variables + # Set OUTPUT_DIR, L10N_DIR, L10N_CODE, and OUTDATED_CONTENT_COUNT as environment variables # Ref: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable echo "OUTPUT_DIR=${OUTPUT_DIR}" >> $GITHUB_ENV + echo "L10N_DIR=${L10N_DIR}" >> $GITHUB_ENV echo "L10N_CODE=${L10N_CODE}" >> $GITHUB_ENV - echo "OUTDATED_TERMS_COUNT=${OUTDATED_TERMS_COUNT}" >> $GITHUB_ENV + echo "OUTDATED_CONTENT_COUNT=${OUTDATED_CONTENT_COUNT}" >> $GITHUB_ENV - name: Generate a report markdown - if: ${{ env.OUTDATED_TERMS_COUNT > 0 }} + if: ${{ env.OUTDATED_CONTENT_COUNT > 0 }} shell: bash run: | FILE_LIST=$(find ${OUTPUT_DIR} -name '*.md') @@ -92,39 +97,57 @@ jobs: touch report.md # Generate markdown - echo "NOTICE - The following outdated terms must be resolved before the next L10n branch updates." >> report.md + echo "This is an issue to track and reflect updates of English content. Please, check the files below as they may have been improved." >> report.md + echo "" >> report.md + echo "NOTICE - The following outdated content should be resolved before the next L10n branch updates." >> report.md echo "" >> report.md - echo "### Outdated files" >> report.md + echo "### Files to check" >> report.md for FILE in ${FILE_LIST}; do FILE_NAME="${FILE#${OUTPUT_DIR}}" - echo "- ${FILE_NAME}" >> report.md + echo "- [ ] ${FILE_NAME}" >> report.md done echo "" >> report.md - echo "### Details" >> report.md + echo "### Changes in each file" >> report.md for FILE in ${FILE_LIST}; do FILE_NAME="${FILE#${OUTPUT_DIR}}" - echo "Outdated file: ${FILE_NAME}" >> report.md - echo "" >> report.md - echo "\`\`\`diff" >> report.md - cat ${FILE} >> report.md - echo "\`\`\`" >> report.md + echo "#### ${FILE_NAME}" >> report.md + echo "- en: https://github.com/${{ github.repository }}/blob/main/content/en/${FILE_NAME}" >> report.md + echo "- ${{ env.L10N_CODE }}: https://github.com/${{ github.repository }}/blob/dev-${{ env.L10N_CODE }}/${{ env.L10N_DIR }}${FILE_NAME}" >> report.md echo "" >> report.md - + + # The collapsible section is applied to improve the readability of the report. + # Apply collapsible section in case the number of lines is greater than 20. + LINES=$(wc -l < ${FILE}) + if [[ "$LINES" -gt "20" ]]; then + echo "
" >> report.md + echo "Diff in detail" >> report.md + echo "" >> report.md + echo "\`\`\`diff" >> report.md + cat ${FILE} >> report.md + echo "\`\`\`" >> report.md + echo "
" >> report.md + echo "" >> report.md + else + echo "\`\`\`diff" >> report.md + cat ${FILE} >> report.md + echo "\`\`\`" >> report.md + echo "" >> report.md + fi + done - echo "The end of report" >> report.md + echo "The end of report" >> report.md - name: Create an issue from the report uses: peter-evans/create-issue-from-file@v4 with: - title: "[${{ env.L10N_CODE }}] A report to track update" + title: "[${{ env.L10N_CODE }}] A report to track and reflect updates of English content" content-filepath: report.md labels: | outdated - good first issue lang/${{ env.L10N_CODE }} diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 5856bd5b46..7ff4752ef5 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -22,7 +22,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: GitHub Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.30.0 + uses: rojopolis/spellcheck-github-actions@0.35.0 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index e98971e6b6..c8e6d88637 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,28 +1,43 @@ -name: "Stale label" +--- +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2023 +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +name: Stale label +# yamllint disable-line rule:truthy on: schedule: - cron: '0 0 * * *' # Runs daily at 12am UTC - branches: - - dev-es + push: + branches: + - dev-es + permissions: issues: write pull-requests: write + jobs: stale: + name: Run stale task to label inactive issues timeout-minutes: 1 # Default: 360 runs-on: ubuntu-latest steps: - - uses: actions/stale@v7 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue/PR is stale because it has been inactive for 60 days. This issue/PR will be closed automatically with additional 20 days of inactivity. If an update/comment occur on stale issue/PR, the stale label will be removed and the timer will restart. Closed issue/PR can be reopened if necessary.' - stale-pr-message: 'This issue/PR is stale because it has been inactive for 60 days. This issue/PR will be closed automatically with additional 20 days of inactivity. If an update/comment occur on stale issue/PR, the stale label will be removed and the timer will restart. Closed issue/PR can be reopened if necessary.' - exempt-issue-labels: 'maintainers, lang/es' - exempt-pr-labels: 'maintainers' - stale-pr-label: 'stale' - stale-issue-label: 'stale' - days-before-stale: 60 - days-before-close: 20 - only-labels: 'lang/es' - close-issue-label: 'close/stale' - close-pr-label: 'close/stale' # Add the label for mainteiners track the close pr labels. \ No newline at end of file + - uses: actions/stale@v8.0.0 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: 'This issue/PR is stale because it has been inactive for 60 days. This issue/PR will be closed automatically with additional 20 days of inactivity. If an update/comment occur on stale issue/PR, the stale label will be removed and the timer will restart. Closed issue/PR can be reopened if necessary.' + stale-pr-message: 'This issue/PR is stale because it has been inactive for 60 days. This issue/PR will be closed automatically with additional 20 days of inactivity. If an update/comment occur on stale issue/PR, the stale label will be removed and the timer will restart. Closed issue/PR can be reopened if necessary.' + exempt-issue-labels: 'maintainers, lang/es' + exempt-pr-labels: 'maintainers' + stale-pr-label: 'stale' + stale-issue-label: 'stale' + days-before-stale: 60 + days-before-close: 20 + only-labels: 'lang/es' + close-issue-label: 'close/stale' + close-pr-label: 'close/stale' # Add the label for mainteiners track the close pr labels. diff --git a/.gitignore b/.gitignore index 2e928ded59..410a3b8e40 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,7 @@ public/ resources/ node_modules/ .hugo_build.lock +.DS_Store + +# Local Netlify folder +.netlify diff --git a/CODEOWNERS b/CODEOWNERS index 0745350a09..f801193341 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -5,42 +5,75 @@ # when someone opens a pull request that modifies code that they own. # These owners will be default owners for everything in this repository. -# These owners consist of Maintainers and English approvers. -* @caniszczyk @CathPag @jasonmorgan @seokho-son @iamNoah1 @jihoon-seo +# These owners consist of Maintainers +* @caniszczyk @seokho-son @iamNoah1 @jihoon-seo @nate-double-u + + +# Approvers for English content +/content/en/ @caniszczyk @seokho-son @iamNoah1 @jihoon-seo @nate-double-u @castrojo +/i18n/en.toml @caniszczyk @seokho-son @iamNoah1 @jihoon-seo @nate-double-u @castrojo # These are the owners (approvers) for localization contents # in each `/content/language/` directory. -# Approvers for Korean contents -/content/ko/ @seokho-son @Eviekim @jihoon-seo @yunkon-kim -# Approvers for Portuguese contents -/content/pt-br/ @edsoncelio @brunoguidone @jessicalins @MrErlison +# Approvers for Arabic contents +/content/ar/ @TarekMSayed @same7ammar @AShabana @arezk84 +/i18n/ar.toml @TarekMSayed @same7ammar @AShabana @arezk84 -# Approvers for Hindi contents -/content/hi/ @Garima-Negi @sayantani11 @anubha-v-ardhan @jayesh-srivastava +# Approvers for Bengali contents +/content/bn/ @Arindam200 @Imtiaz1234 @mitul3737 @sajibAdhi +/i18n/bn.toml @Arindam200 @Imtiaz1234 @mitul3737 @sajibAdhi # Approvers for German contents /content/de/ @iamNoah1 @DaveVentura @CathPag @bcubk +/i18n/de.toml @iamNoah1 @DaveVentura @CathPag @bcubk + +# Approvers for Spanish contents +/content/es/ @raelga @ramrodo @electrocucaracha @krol3 @92nqb +/i18n/es.toml @raelga @ramrodo @electrocucaracha @krol3 @92nqb + +# Approvers for French contents +/content/fr/ @huats @fydrah @Krast76 @sestegra @guillaumebernard84 +/i18n/fr.toml @huats @fydrah @Krast76 @sestegra @guillaumebernard84 + +# Approvers for Hindi contents +/content/hi/ @Garima-Negi @jayesh-srivastava @abhay-raj19 @aj11anuj @kumarankit999 @bishal7679 +/i18n/hi.toml @Garima-Negi @jayesh-srivastava @abhay-raj19 @aj11anuj @kumarankit999 @bishal7679 # Approvers for Italian contents /content/it/ @fsbaraglia @ugho16 @annalisag-spark @sistella +/i18n/it.toml @fsbaraglia @ugho16 @annalisag-spark @sistella -# Approvers for Arabic contents -/content/ar/ @TarekMSayed @same7ammar @AShabana @arezk84 +# Approvers for Japanese contents +/content/ja/ @inductor @naonishijima @kaitoii11 @yuichi-nakamura +/i18n/ja.toml @inductor @naonishijima @kaitoii11 @yuichi-nakamura -# Approvers for Bengali contents -/content/bn/ @mitul3737 @Mouly22 @ikramulkayes @Imtiaz1234 +# Approvers for Korean contents +/content/ko/ @seokho-son @jihoon-seo @yunkon-kim +/i18n/ko.toml @seokho-son @jihoon-seo @yunkon-kim -# Approvers for Spanish contents -/content/es/ @raelga @ramrodo @electrocucaracha @krol3 @92nqb +# Approvers for Portuguese contents +/content/pt-br/ @edsoncelio @brunoguidone @jessicalins @MrErlison +/i18n/pt-br.toml @edsoncelio @brunoguidone @jessicalins @MrErlison -# Approvers for Chinese contents -/content/zh-cn/ @hanyuancheung @Jacob953 @Rocksnake @Submarinee +# Approvers for Russian contents +/content/ru/ @shurup @kirkonru @tym83 +/i18n/ru.toml @shurup @kirkonru @tym83 -# Approvers for French contents -/content/fr/ @huats @fydrah @Krast76 +# Approvers for Turkish contents +/content/tr/ @aliok @halil-bugol @rwxdash @eminalemdar +/i18n/tr.toml @aliok @halil-bugol @rwxdash @eminalemdar # Approvers for Urdu contents /content/ur/ @Saim-Safdar @waleed318 +/i18n/ur.toml @Saim-Safdar @waleed318 + +# Approvers for Simplified Chinese contents +/content/zh-cn/ @hanyuancheung @Jacob953 @Rocksnake @Submarinee +/i18n/zh-cn.toml @hanyuancheung @Jacob953 @Rocksnake @Submarinee + +# Approvers for Traditional Chinese contents +/content/zh-tw/ @pichuang @ydFu @hwchiu @johnlinp +/i18n/zh-tw.toml @pichuang @ydFu @hwchiu @johnlinp diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 79714f4079..c4b43e1243 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,6 @@ Below are the guidelines for how to contribute to the code that runs the CNCF Gl ## How can I contribute? 1. **Report a bug**. If you see a technical issue with the CNCF Glossary site or something that doesn't look right, search [the existing issues](https://github.com/cncf/glossary/issues) to see if it has been reported already. If not, please [create a new issue](https://github.com/cncf/glossary/issues/new) describing the bug. Please provide all steps necessary to reproduce the bug and screenshots if applicable. -2. **Fix a bug**. Find [an issue](https://github.com/cncf/glossary/issues) you want to fix and submit a PR for approval. +2. **Fix a bug**. Find [an issue](https://github.com/cncf/glossary/issues) you want to fix and submit a PR for approval. Read [more about the code that runs the Glossary site](https://github.com/cncf/glossary/blob/main/spin-new-glossary.md) and [how to set up your own local development instance](https://github.com/cncf/glossary#setting-up-a-local-instance). To connect with our community and ask questions, please join [the #glossary channel on the CNCF slack](https://cloud-native.slack.com/archives/C02TX20MQBB). diff --git a/LOCALIZATION.md b/LOCALIZATION.md index ecce448cbb..07917a2af4 100644 --- a/LOCALIZATION.md +++ b/LOCALIZATION.md @@ -133,11 +133,12 @@ Once the PR is merged, the localized content will go live on its website 🎉 To join an existing team, hop on the #glossary-localizations and #glossary-localization-[language name] channels on the CNCF Slack. Introduce yourself, let the team know you want to contribute, and the team will take it from there. -If the team seems inactive (no response after several days), reach out to @Seokho Son, @Catherine Paganini, @jmo, @Jihoon Seo or @Noah Ispas on the #glossary-localizations channel. +If the team seems inactive (no response after several days), reach out to @Seokho Son, @Jihoon Seo, @nate-double-u, or @Noah Ispas on the #glossary-localizations channel. --- # Localization team guidelines + Every localization team may have its own process of working on localizing terms. However, here are some guidelines that are common for all localization teams: 1. Only terms with the status `Completed` in the English version are ready to be localized. diff --git a/README.md b/README.md index 34216b5c0e..f3da6caeb1 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,30 @@ If you'd like to help with the glossary we'd love to have your contributions! Pl ## Acknowledgements -The Cloud Native Glossary was initiated by the CNCF Marketing -Committee (Business Value Subcommittee) and includes contributions -from [Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), [Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), -[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), [Katelin Ramer](https://www.linkedin.com/in/katelinramer/) and [Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca). - -## License +The Cloud Native Glossary was initiated by the CNCF Marketing Committee +(Business Value Subcommittee) and includes contributions from +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), +and many more contributors. +For a complete contributor list, please refer to [this GitHub page](https://github.com/cncf/glossary/graphs/contributors). + +The Glossary is maintained by +[Seokho Son](https://www.linkedin.com/in/seokho-son/), +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Nate W.](https://www.linkedin.com/in/nate-double-u/), +and [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +and [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +are Emeritus Maintainers, and we are deeply grateful +for their invaluable contributions over the years. + +## License All code contributions are under the Apache 2.0 license. Documentation is distributed under CC BY 4.0. @@ -32,6 +50,6 @@ git submodule update --init --recursive npm install ``` -You can then run the site using `hugo server`. +You can then run the site using `npm run serve` (select "[Hugo]"). [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?repo=cncf/glossary) diff --git a/assets/json/offline-search-index.json b/assets/json/offline-search-index.json index 061c4083c5..0423be6205 100644 --- a/assets/json/offline-search-index.json +++ b/assets/json/offline-search-index.json @@ -1,7 +1,7 @@ {{- $.Scratch.Add "offline-search-index" slice -}} {{- range where .Site.AllPages ".Params.exclude_search" "!=" true -}} {{/* We have to apply `htmlUnescape` again after `truncate` because `truncate` applies `html.EscapeString` if the argument is not HTML. */}} -{{/* Indvidual taxonomies can be added in the next line by add '"taxonomy-name" (.Params.taxonomy-name | default "")' to the dict (as seen for categories and tags). */}} +{{/* Individual taxonomies can be added in the next line by add '"taxonomy-name" (.Params.taxonomy-name | default "")' to the dict (as seen for categories and tags). */}} {{- $.Scratch.Add "offline-search-index" (dict "ref" .RelPermalink "title" .Title "status" (.Params.status | default "") "body" (.Plain | htmlUnescape) "excerpt" ((.Description | default .Plain) | htmlUnescape | truncate (.Site.Params.offlineSearchSummaryLength | default 70) | htmlUnescape)) -}} {{- end -}} {{- $.Scratch.Get "offline-search-index" | jsonify -}} diff --git a/assets/scss/_footer.scss b/assets/scss/_footer.scss index 0f9edae0b2..d7f52f34f9 100644 --- a/assets/scss/_footer.scss +++ b/assets/scss/_footer.scss @@ -12,23 +12,94 @@ footer { text-decoration: none; } } - .brand img { - height: 40px; + .logo-and-hub { + display: flex; + flex-direction: column; + gap: 10px; + width: 100%; + @media (min-width: 992px) { + gap: 35px; + width: unset; + flex-direction: row; + align-items: center; + } + .logo { + height: 40px; + margin-left: auto; + margin-right: auto; + } + .hub-button { + font-size: 16px; + line-height: 16px; + font-weight: 700; + border-radius: 3px; + border: 1px solid $white; + text-transform: none; + text-decoration: none; + text-align: center; + letter-spacing: 0.02em; + background-color: unset; + padding-left: 40px; + padding-right: 40px; + padding-top: 11px; + padding-bottom: 11px; + transition: all 0.25s ease-out; + margin-bottom: calc(35px - 15px); + width: 100%; + max-width: calc(614px - 15px - 15px); // social-links + margin-left: auto; + margin-right: auto; + @media (min-width: 992px) { + width: unset; + margin-bottom: 0px; + padding-top: 9px; + padding-bottom: 9px; + } + &:hover { + border: 1px solid $link-color; + background-color: $link-color; + } + } } small a { color: #eee; } } -// social links. +// social link icons. .social-links { - text-align: center; + display: flex; + flex-wrap: wrap; + padding-left: 0; + align-items: center; + align-content: center; + justify-content: center; + list-style: none; + column-gap: calc(43px - 15px - 15px); + row-gap: 0; + margin-left: auto; + margin-right: auto; @media (min-width: 992px) { text-align: right; + gap: 0; + margin-bottom: 0; + margin-right: unset; + } + li { + display: inline-block; } a { - padding: 10px; display: block; + padding: 10px; + @media (min-width: 372px) { + padding: 15px; + } + @media (min-width: 992px) { + padding: 10px; + } + @media (min-width: 1200px) { + padding: 17px; + } } svg { fill: $white; @@ -46,7 +117,6 @@ footer { background-color: $white; height: 1px; width: 100%; - margin: 1rem 0; } .copyright { diff --git a/config.toml b/config.toml index d2fe9000d1..147a46f848 100644 --- a/config.toml +++ b/config.toml @@ -47,17 +47,18 @@ anchor = "smart" [services] [services.googleAnalytics] # Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. -id = "UA-140890431-2" +# id = "UA-140890431-2" # Language configuration [languages] [languages.en] title = "Cloud Native Glossary" -description = "The CNCF Cloud Native Glossary Project is intended to be used as a reference for common terms used when talking about cloud native applications." languageName ="English" # Weight used for sorting. weight = 1 +[languages.en.params] +description = "The CNCF Cloud Native Glossary Project is intended to be used as a reference for common terms used when talking about cloud native applications." #[languages.no] #title = "CNCF Glossary" @@ -67,62 +68,94 @@ weight = 1 #time_format_default = "02.01.2006" #time_format_blog = "02.01.2006" + [languages.hi] title = "ā¤•āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¨āĨ‡ā¤Ÿā¤ŋā¤ĩ ā¤ļā¤ŦāĨā¤Ļā¤žā¤ĩā¤˛āĨ€" -description = "CNCF ā¤•āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¨āĨ‡ā¤Ÿā¤ŋā¤ĩ ā¤ļā¤ŦāĨā¤Ļā¤žā¤ĩā¤˛āĨ€ ā¤Ēā¤°ā¤ŋā¤¯āĨ‹ā¤œā¤¨ā¤ž ā¤•ā¤ž ā¤‰ā¤ĻāĨā¤ĻāĨ‡ā¤ļāĨā¤¯ ā¤•āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¨āĨ‡ā¤Ÿā¤ŋā¤ĩ ā¤ā¤ĒāĨā¤˛ā¤ŋā¤•āĨ‡ā¤ļā¤¨ ā¤•āĨ‡ ā¤Ŧā¤žā¤°āĨ‡ ā¤ŽāĨ‡ā¤‚ ā¤Ŧā¤žā¤¤ ā¤•ā¤°ā¤¤āĨ‡ ā¤¸ā¤Žā¤¯ ā¤ĒāĨā¤°ā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤ ā¤œā¤žā¤¨āĨ‡ ā¤ĩā¤žā¤˛āĨ‡ ā¤¸ā¤žā¤Žā¤žā¤¨āĨā¤¯ ā¤ļā¤ŦāĨā¤ĻāĨ‹ā¤‚ ā¤•āĨ‡ ā¤¸ā¤‚ā¤Ļā¤°āĨā¤­ ā¤•āĨ‡ ā¤°āĨ‚ā¤Ē ā¤ŽāĨ‡ā¤‚ ā¤‰ā¤Ēā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤¨ā¤ž ā¤šāĨˆāĨ¤" -languageName ="ā¤šā¤ŋā¤¨āĨā¤ĻāĨ€(Hindi)" +languageName ="ā¤šā¤ŋā¤¨āĨā¤ĻāĨ€ (Hindi)" contentDir = "content/hi" weight = 2 +[languages.hi.params] +description = "CNCF ā¤•āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¨āĨ‡ā¤Ÿā¤ŋā¤ĩ ā¤ļā¤ŦāĨā¤Ļā¤žā¤ĩā¤˛āĨ€ ā¤Ēā¤°ā¤ŋā¤¯āĨ‹ā¤œā¤¨ā¤ž ā¤•ā¤ž ā¤‰ā¤ĻāĨā¤ĻāĨ‡ā¤ļāĨā¤¯ ā¤•āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¨āĨ‡ā¤Ÿā¤ŋā¤ĩ ā¤ā¤ĒāĨā¤˛ā¤ŋā¤•āĨ‡ā¤ļā¤¨ ā¤•āĨ‡ ā¤Ŧā¤žā¤°āĨ‡ ā¤ŽāĨ‡ā¤‚ ā¤Ŧā¤žā¤¤ ā¤•ā¤°ā¤¤āĨ‡ ā¤¸ā¤Žā¤¯ ā¤ĒāĨā¤°ā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤ ā¤œā¤žā¤¨āĨ‡ ā¤ĩā¤žā¤˛āĨ‡ ā¤¸ā¤žā¤Žā¤žā¤¨āĨā¤¯ ā¤ļā¤ŦāĨā¤ĻāĨ‹ā¤‚ ā¤•āĨ‡ ā¤¸ā¤‚ā¤Ļā¤°āĨā¤­ ā¤•āĨ‡ ā¤°āĨ‚ā¤Ē ā¤ŽāĨ‡ā¤‚ ā¤‰ā¤Ēā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤¨ā¤ž ā¤šāĨˆāĨ¤" [languages.pt-br] title = "GlossÃĄrio Cloud Native" -description = "O Projeto CNCF GlossÃĄrio Cloud Native se destina a ser usado como uma referÃĒncia para termos comuns usados ao falar sobre aplicaçÃĩes nativas de nuvem." languageName = "PortuguÃĒs" contentDir = "content/pt-br" weight = 3 +[languages.pt-br.params] +description = "O Projeto CNCF GlossÃĄrio Cloud Native se destina a ser usado como uma referÃĒncia para termos comuns usados ao falar sobre aplicaçÃĩes nativas de nuvem." [languages.it] title = "Glossario Cloud Native" -description = "Il progetto del Glossario CNCF Cloud Native è pensato per essere un riferimento per i termini comuni, usati nell'ambito delle applicazioni cloud native." languageName = "Italiano" contentDir = "content/it" weight = 4 +[languages.it.params] +description = "Il progetto del Glossario CNCF Cloud Native è pensato per essere un riferimento per i termini comuni, usati nell'ambito delle applicazioni cloud native." [languages.ko] title = "클ëŧėš°ë“œ 네ė´í‹°ë¸Œ(Cloud Native) ėšŠė–´ė§‘" -description = "CNCF 클ëŧėš°ë“œ 네ė´í‹°ë¸Œ ėšŠė–´ė§‘ 프로ė íŠ¸ëŠ” 클ëŧėš°ë“œ 네ė´í‹°ë¸Œ ė• í”ŒëĻŦėŧ€ė´ė…˜ė„ ėŖŧė œëĄœ 대화ëĨŧ 나눌 때 ė°¸ėĄ°í•  ėˆ˜ ėžˆëŠ” ęŗĩí†ĩė˜ ėšŠė–´ ė œęŗĩė„ ëĒŠí‘œëĄœ 한다." -languageName ="한ęĩ­ė–´(Korean)" +languageName ="한ęĩ­ė–´ (Korean)" contentDir = "content/ko" weight = 5 +[languages.ko.params] +description = "CNCF 클ëŧėš°ë“œ 네ė´í‹°ë¸Œ ėšŠė–´ė§‘ 프로ė íŠ¸ëŠ” 클ëŧėš°ë“œ 네ė´í‹°ë¸Œ ė• í”ŒëĻŦėŧ€ė´ė…˜ė„ ėŖŧė œëĄœ 대화ëĨŧ 나눌 때 ė°¸ėĄ°í•  ėˆ˜ ėžˆëŠ” ęŗĩí†ĩė˜ ėšŠė–´ ė œęŗĩė„ ëĒŠí‘œëĄœ 한다." [languages.es] title = "Cloud Native Glosario" -description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como una referencia para los terminos comunes usados cuando se habla acerca de las aplicaciones nativas para la nube." -languageName ="EspaÃąol(Spanish)" +languageName ="EspaÃąol (Spanish)" contentDir = "content/es" weight = 6 +[languages.es.params] +description = "El proyecto de CNCF Cloud Native Glosario pretende ser usado como una referencia para los terminos comunes usados cuando se habla acerca de las aplicaciones nativas para la nube." [languages.zh-cn] title = "Cloud Native(äē‘原į”Ÿ) Glossary" -description = "CNCF äē‘原į”Ÿ Glossary 饚į›Žæ—¨åœ¨į”¨äŊœčŽ¨čŽēäē‘原į”Ÿåē”į”¨į¨‹åēæ—ļ常į”¨æœ¯č¯­įš„å‚č€ƒ" -languageName ="中文(Chinese)" +languageName ="įŽ€äŊ“中文 (Simplified Chinese)" contentDir = "content/zh-cn" weight = 7 +[languages.zh-cn.params] +description = "CNCF äē‘原į”Ÿ Glossary 饚į›Žæ—¨åœ¨į”¨äŊœčŽ¨čŽēäē‘原į”Ÿåē”į”¨į¨‹åēæ—ļ常į”¨æœ¯č¯­įš„å‚č€ƒ" [languages.bn] title = "āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻļāĻŦā§āĻĻāĻ•ā§‹āĻˇ" -description = "CNCF āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻļāĻŦā§āĻĻāĻ•ā§‹āĻˇ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻĻāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡āĨ¤" -languageName = "āĻŦāĻžāĻ‚āĻ˛āĻž(Bengali)" +languageName = "āĻŦāĻžāĻ‚āĻ˛āĻž (Bengali)" contentDir = "content/bn" weight = 8 +[languages.bn.params] +description = "CNCF āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻļāĻŦā§āĻĻāĻ•ā§‹āĻˇ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻĻāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡āĨ¤" [languages.de] title = "Cloud Native Glossar" -description = "Das CNCF Cloud Native Glossar soll als Referenz fÃŧr gängige Begriffe dienen, die im Zusammenhang mit Cloud Native Anwendungen verwendet werden." languageName ="Deutsch" contentDir = "content/de" weight = 9 +[languages.de.params] +description = "Das CNCF Cloud Native Glossar soll als Referenz fÃŧr gängige Begriffe dienen, die im Zusammenhang mit Cloud Native Anwendungen verwendet werden." +[languages.ur] +title = "ÚŠŲ„اؤڈ ÚŠÛŒ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ" +languageName ="Ø§ØąØ¯Ųˆ (Urdu)" +contentDir = "content/ur" +weight = 10 +[languages.ur.params] +description = "CNCF ÚŠŲ„اؤڈ ÚŠÛŒ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ ڊا Ų…Ų‚Øĩد ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē باØĒ ÚŠØąØĒے ŲˆŲ‚ØĒ اØŗØĒØšŲ…اŲ„ ہŲˆŲ†Û’ ŲˆØ§Ų„ÛŒ ؚاŲ… اØĩØˇŲ„احاØĒ ÚŠÛ’ Ø­ŲˆØ§Ų„Û’ ÚŠÛ’ ØˇŲˆØą ŲžØą اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Ø§ ہے۔" + +[languages.fr] +title = "Glossaire Cloud Native" +languageName ="Français (French)" +contentDir = "content/fr" +weight = 11 +[languages.fr.params] +description = "Le projet de Glossaire CNCF Cloud Native a pour objectif de rÊfÊrencer les termes courants utilisÊs dans les diffÊrentes applications Cloud Natives." + +[languages.zh-tw] +title = "Cloud Native(雲įĢ¯åŽŸį”Ÿ) Glossary" +languageName ="įšéĢ”中文 (Traditional Chinese)" +contentDir = "content/zh-tw" +weight = 12 +[languages.zh-tw.params] +description = "CNCF 雲įĢ¯åŽŸį”Ÿ Glossary å°ˆæĄˆæ—¨åœ¨į”¨äŊœč¨ŽčĢ–雲įĢ¯åŽŸį”Ÿæ‡‰į”¨į¨‹åŧæ™‚常į”¨čĄ“čĒžįš„åƒč€ƒ" [markup] [markup.goldmark] diff --git a/content/bn/abstraction.md b/content/bn/abstraction.md index 6784a1d358..a37c310bb3 100644 --- a/content/bn/abstraction.md +++ b/content/bn/abstraction.md @@ -2,8 +2,9 @@ title: āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ (Abstraction) status: Completed category: āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ +tags: ["fundamental", "", ""] --- -āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻ° āĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻžāĻĒāĻŸā§‡, āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž āĻšāĻ˛ āĻāĻ• āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ [āĻ¸ā§‡āĻŦāĻž](/service/) āĻ­ā§‹āĻ—āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° (āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ…āĻĨāĻŦāĻž āĻŽāĻžāĻ¨ā§āĻˇ) āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ˛ā§āĻ•āĻŋāĻ¯āĻŧā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧ, āĻāĻ­āĻžāĻŦā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ–ā§āĻŦ āĻ¸āĻŋāĻŽā§āĻĒāĻ˛ āĻ­āĻžāĻŦā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĢāĻ˛ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻŦā§āĻāĻ¤ā§‡āĻ“ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ā§‹ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (OS)āĨ¤ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻŽā§‡āĻŽā§‹āĻ°āĻŋ āĻ…āĻĨāĻŦāĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡, āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° OS āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ‡ āĻœāĻŸāĻŋāĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛ā§‹ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ OS āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛ā§‹ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻ•āĻ°ā§‡ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻ‡ OS "āĻĒāĻ°ā§āĻĻāĻž" āĻŦāĻž āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻžāĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ˛ā§āĻ•āĻžāĻ¨ā§‹ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻ° āĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻžāĻĒāĻŸā§‡, āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž āĻšāĻ˛ āĻāĻ• āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ [āĻ¸ā§‡āĻŦāĻž](/bn/service/) āĻ­ā§‹āĻ—āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° (āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ…āĻĨāĻŦāĻž āĻŽāĻžāĻ¨ā§āĻˇ) āĻ•āĻžāĻ› āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ˛ā§āĻ•āĻŋāĻ¯āĻŧā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧ, āĻāĻ­āĻžāĻŦā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ–ā§āĻŦ āĻ¸āĻŋāĻŽā§āĻĒāĻ˛ āĻ­āĻžāĻŦā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĢāĻ˛ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻŦā§āĻāĻ¤ā§‡āĻ“ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ā§‹ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (OS)āĨ¤ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻŽā§‡āĻŽā§‹āĻ°āĻŋ āĻ…āĻĨāĻŦāĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡, āĻ†āĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° OS āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ‡ āĻœāĻŸāĻŋāĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛ā§‹ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ OS āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛ā§‹ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻ•āĻ°ā§‡ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻœāĻžāĻ¨āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻ‡ OS "āĻĒāĻ°ā§āĻĻāĻž" āĻŦāĻž āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻžāĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ˛ā§āĻ•āĻžāĻ¨ā§‹ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄā§‡āĻ­āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ āĻ°ā§‡āĻ–ā§‡ āĻ¸āĻŦ āĻ•āĻŋāĻ›ā§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛ā§‹ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻ° āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯āĻž āĻ–ā§āĻŦāĻ‡ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°āĻ¤āĨ¤ āĻ•ā§‹āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¤āĻŦā§‡ āĻ¤āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ — āĻ¨āĻŋāĻšā§‡āĻ° āĻ¸ā§āĻ¤āĻ°āĻ—ā§āĻ˛ā§‹ āĻ¤ā§‡ āĻ¯āĻžāĻ‡ āĻĨāĻžāĻ•ā§āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨āĨ¤ diff --git a/content/bn/agile-software-development.md b/content/bn/agile-software-development.md index c410523b0c..bf799d2bcc 100644 --- a/content/bn/agile-software-development.md +++ b/content/bn/agile-software-development.md @@ -2,6 +2,7 @@ title: āĻ…ā§āĻ¯āĻžāĻœāĻžāĻ‡āĻ˛ āĻ¸āĻĢāĻŸāĻ“ā§Ÿā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ (Agile Software Development) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ diff --git a/content/bn/api-gateway.md b/content/bn/api-gateway.md new file mode 100644 index 0000000000..3861466767 --- /dev/null +++ b/content/bn/api-gateway.md @@ -0,0 +1,32 @@ +--- +title: API āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡(API Gateway) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["networking", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ [API](/bn/application-programming-interface/) āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ˛ āĻ¯āĻž +āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ APIāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŽā§‚āĻ˛ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, +āĻ¯ā§‡āĻŽāĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻž, +āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ API āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ (āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤) API āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻ­ā§‹āĻ•ā§āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ API āĻ—ā§āĻ˛āĻŋ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨, +āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻšāĻžāĻ‡āĻŦā§‡āĻ¨āĨ¤ +āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§‡āĻ‡ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ, +āĻāĻ•āĻŸāĻŋ āĻāĻĒāĻŋāĻ†āĻ‡ āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ…ā§āĻ¯āĻžāĻĒ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ API-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž, +API āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ•ā§āĻ°āĻ¸-āĻ•āĻžāĻŸāĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻŦāĻž āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ + āĻāĻŸāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻāĻĒāĻŋāĻ†āĻ‡ āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ [observability](/bn/observability/) āĻāĻ° āĻŽāĻ¤ā§‹ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ‰āĻĻā§āĻŦā§‡āĻ—āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻšāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĨ¤ +āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻŸāĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ +āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ API āĻ—ā§‡āĻŸāĻ“āĻ¯āĻŧā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ°āĻŦāĻžāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸ā§āĻĨāĻžāĻ¨ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ +āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸-āĻ¸āĻ‚āĻ—ā§āĻ°āĻš, āĻšāĻžāĻ°-āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ diff --git a/content/bn/application-programming-interface.md b/content/bn/application-programming-interface.md index 88343bb682..771d67f113 100644 --- a/content/bn/application-programming-interface.md +++ b/content/bn/application-programming-interface.md @@ -2,16 +2,14 @@ title: āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ (API) status: Completed category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["architecture", "fundamental", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ - āĻāĻ•āĻŸāĻŋ API āĻšāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻŽāĻžāĻ¨ā§āĻˇ āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻĒā§ƒāĻˇā§āĻ āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¤ā§‡āĻŽāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ API āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻŽāĻžāĻ¨ā§āĻˇā§‡āĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨā§‡āĻ•ā§‡ āĻ­āĻŋāĻ¨ā§āĻ¨, API-āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻ•ā§€ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•ā§€ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤ -## āĻāĻŸāĻŋ āĻ¯ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ - -āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ āĻ˛ā§‡, āĻ›ā§‹āĻŸ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•āĻ ā§‹āĻ° āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ…āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ API āĻ›āĻžāĻĄāĻŧāĻž, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ…āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ›āĻžāĻĄāĻŧāĻž, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ [āĻ¸ā§āĻ•ā§‡āĻ˛(scale)](/scalability/) āĻāĻŦāĻ‚ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚āĨ¤ +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ āĻ˛ā§‡, āĻ›ā§‹āĻŸ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•āĻ ā§‹āĻ° āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ…āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ API āĻ›āĻžāĻĄāĻŧāĻž, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ…āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ›āĻžāĻĄāĻŧāĻž, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ [āĻ¸ā§āĻ•ā§‡āĻ˛(scale)](/bn/scalability/) āĻāĻŦāĻ‚ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚āĨ¤ ## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ - -APIāĻ—ā§āĻ˛āĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ†āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻž āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻŦā§āĻ˛āĻ• āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻž āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¯āĻ–āĻ¨āĻ‡ āĻ†āĻĒāĻ¨āĻŋ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸(microservices)](/microservices/) āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ•āĻĨāĻž āĻļā§āĻ¨ā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ +APIāĻ—ā§āĻ˛āĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ†āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻž āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻŦā§āĻ˛āĻ• āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻž āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¯āĻ–āĻ¨āĻ‡ āĻ†āĻĒāĻ¨āĻŋ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸(microservices)](/bn/microservices/) āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ•āĻĨāĻž āĻļā§āĻ¨ā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/auto_scaling.md b/content/bn/auto_scaling.md new file mode 100644 index 0000000000..967b12c326 --- /dev/null +++ b/content/bn/auto_scaling.md @@ -0,0 +1,12 @@ +--- +title: āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ (Autoscaling) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["infrastructure", "", ""] +--- + +āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻšāĻ˛ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻŋāĻ¤ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ [āĻ¸ā§āĻ•ā§‡āĻ˛](/bn/scalability/) āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžā§Ÿā§€ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻāĻŦāĻ‚ āĻŽā§‡āĻŽā§‹āĻ°āĻŋ āĻŦāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŽāĻ¤ā§‹ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšā§Ÿ āĻ•āĻžāĻ°āĻŖ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…āĻ¨-āĻĒā§āĻ°āĻŋāĻŽāĻžāĻ‡āĻœ āĻĄāĻŋāĻĒā§āĻ˛ā§‹āĻ¯āĻŧāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻāĻŸāĻŋāĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ + +āĻĒā§‚āĻ°ā§āĻŦā§‡, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡āĨ¤ āĻāĻ‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ•āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšāĻšā§āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ­ā§‹āĻ•ā§āĻ¤āĻžāĻĻā§‡āĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ• āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻĢāĻ˛ā§‡ āĻŦā§āĻ¯āĻŦāĻ¸āĻžā§Ÿ āĻ‰āĻšā§āĻš āĻ–āĻ°āĻš āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻĻā§‡āĻ–āĻž āĻĻāĻŋāĻ˛ā§‡āĻ‡ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋāĻ˛āĨ¤ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ, [āĻ­āĻžāĻ°āĻšā§ā§ŸāĻžāĻ˛āĻžāĻ‡āĻœāĻŋāĻ‚](/bn/virtualization/), and [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻŋāĻ‚](/bn/containerization/) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻ¸āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡ āĻāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¯ā§‡āĻŽāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋ āĻļā§āĻ•ā§āĻ°āĻŦāĻžāĻ° āĻ¸āĻ¨ā§āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ Netflix-āĻāĻ° āĻĻāĻ°ā§āĻļāĻ• āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžā§ŸāĨ¤ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ†āĻ‰āĻŸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž: āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻ°āĻ“ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻ•āĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻ†āĻŦāĻžāĻ° āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĨ¤ diff --git a/content/bn/bare-metal-machine.md b/content/bn/bare-metal-machine.md new file mode 100644 index 0000000000..8237c1666b --- /dev/null +++ b/content/bn/bare-metal-machine.md @@ -0,0 +1,34 @@ +--- +title: āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (Bare Metal Machine) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["infrastructure", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛(bare metal) āĻŦāĻ˛āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­ā§ŒāĻ¤ ​​āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ, āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻ¯āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻžāĻ°āĻŖ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛ā§‹āĻ‡ [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨](/bn/virtual-machine/)āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ­ā§ŒāĻ¤ ​​āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°(physical server) āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĨ¤ +[āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨](/bn/virtualization/) āĻ›āĻžāĻĄāĻŧāĻž āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ•ā§‡, +"āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛"("bare metal") āĻ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ—āĻ˛ āĻ•āĻ°āĻžāĻ‡ āĻšāĻ˛ā§‹ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻ° āĻ†āĻ¸āĻ˛ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨(pattern)āĨ¤ +āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨(virtualization) āĻ¸ā§āĻ¤āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¨āĻž āĻĨāĻžāĻ•āĻžāĻ° āĻĢāĻ˛ā§‡, +āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻ•ā§ƒāĻ¤ā§āĻ°āĻŋāĻŽ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¨ā§‡āĻ‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ‰āĻ¤ā§āĻ¸āĻ°ā§āĻ— āĻ•āĻ°ā§‡, +āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ +āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ˛ā§‹āĻĄ(workload) āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻšāĻŦā§‡, +āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛(bare metal) āĻ¸āĻ āĻŋāĻ• āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +[āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒāĻ¸](/bn/cloud-native-apps/) āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡ +āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/scalability/)(scaling) āĻāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§‡āĻ° āĻ•āĻĨāĻž āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻŋ, +āĻ¯āĻž [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/horizontal-scaling/)(horizontal-scaling) (āĻ†āĻĒāĻ¨āĻžāĻ° āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ˛ā§‡(resource pool) āĻ†āĻ°āĻ“ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž) āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻŋāĻ›ā§ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ˛ā§‹āĻĄāĻ¸-āĻāĻ°(workloads) [āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/vertical-scaling/) (āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻļāĻ•ā§āĻ¤āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž) +āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°(hardware) āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯ā§‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛(bare metal) āĻ­āĻžāĻ˛ā§‹ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤āĨ¤ +āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°(hardware) āĻāĻŦāĻ‚ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ°(hardware drivers) āĻ¸āĻžāĻĨā§‡ āĻ¤āĻžāĻ˛ āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛(bare metal) āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/blue-green-deployment.md b/content/bn/blue-green-deployment.md new file mode 100644 index 0000000000..acfed03708 --- /dev/null +++ b/content/bn/blue-green-deployment.md @@ -0,0 +1,29 @@ +--- +title: āĻ¨ā§€āĻ˛ āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (Blue Green Deployment) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "application", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ¸āĻš āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻ•āĻŸāĻŋ āĻ•ā§ŒāĻļāĻ˛āĨ¤ +āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° āĻĻā§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–ā§‡, āĻ¯āĻž "āĻ¨ā§€āĻ˛" āĻāĻŦāĻ‚ "āĻ¸āĻŦā§āĻœ" āĻ¨āĻžāĻŽā§‡ āĻĄāĻžāĻ•āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°ā§‡ (āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻŸāĻŋ āĻ¯ā§‡āĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻ¸āĻŽā§Ÿ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨), āĻ¯āĻ–āĻ¨ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŦāĻžāĻ° āĻ…-āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ (āĻ¸āĻŦā§āĻœ) āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻļā§‡āĻˇ āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ā§‡, +āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸ā§āĻ‡āĻš āĻ“āĻ­āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡)āĨ¤ +āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž, āĻāĻ•āĻ¯ā§‹āĻ—ā§‡, āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ•āĻ°āĻ­āĻžāĻŦā§‡, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§ƒāĻĨāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ‡ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§‡, āĻĒā§ƒāĻĨāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ "āĻļā§‚āĻ¨ā§āĻ¯-āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (zero-downtime deployment)" āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻž āĻĒāĻļā§āĻšāĻžāĻĻāĻ—āĻžāĻŽā§€ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ā§‡āĻ° āĻ…āĻ­āĻžāĻŦā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡ "āĻ˛āĻ•āĻ¸ā§āĻŸā§‡āĻĒ" āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻšāĻŦā§‡ āĻ¯āĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¨āĻž āĻāĻŦāĻ‚ āĻāĻ° āĻ¤āĻĻā§āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĨ¤ +āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ‰āĻ­āĻ¯āĻŧ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ +āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻ—ā§āĻ°āĻžāĻšāĻ•āĻ°āĻž āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŦā§‡āĻ¨āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¨āĻ¨-āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ•ā§ŒāĻļāĻ˛ āĻ¯āĻž āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻĻāĻ°āĻ•āĻžāĻ°āĨ¤ +āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻāĻŸāĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ "āĻ—āĻ¨ā§āĻ§(smell)" āĻ¯āĻž āĻ˛ā§‡āĻ—āĻžāĻ¸āĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¤ā§ˆāĻ°ā§€ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§ƒāĻĨāĻ•āĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšā§Ÿ āĻ“āĻ ā§‡ āĨ¤ diff --git a/content/bn/canary-deployment.md b/content/bn/canary-deployment.md new file mode 100644 index 0000000000..7660de240b --- /dev/null +++ b/content/bn/canary-deployment.md @@ -0,0 +1,33 @@ +--- +title: āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻĄāĻŋāĻĒā§āĻ˛ā§ŸāĻŽā§‡āĻ¨ā§āĻŸ (Canary Deployment) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "application", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻĄāĻŋāĻĒā§āĻ˛ā§ŸāĻŽā§‡āĻ¨ā§āĻŸ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ•ā§ŒāĻļāĻ˛ āĻ¯āĻž āĻĻā§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ: +āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ­ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸āĻš āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋāĻ¤ā§‡ āĻ˛āĻžāĻ‡āĻ­ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻ•ā§‹āĻĄ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ +āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•āĻŸāĻŋ āĻ§ā§€āĻ°ā§‡ āĻ§ā§€āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° āĻ†āĻ¸āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĨā§‡āĻ•ā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ“āĻ¯āĻŧāĻž āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻāĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ­ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•ā§‡āĻ° 1%, āĻ¤āĻžāĻ°āĻĒāĻ° 10%, 25% āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ¸āĻ°āĻžāĻ¨ā§‹āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻļā§āĻ°ā§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ +āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ†āĻĒāĻĄā§‡āĻŸ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšāĻ˛āĻ›ā§‡āĨ¤ +āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, +āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ°ā§‹āĻ˛āĻŦā§āĻ¯āĻžāĻ• āĻ•āĻ°ā§āĻ¨ā§ˇ + +"āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ" āĻļāĻŦā§āĻĻāĻŸāĻŋ "āĻ•āĻ¯āĻŧāĻ˛āĻž āĻ–āĻ¨āĻŋāĻ¤ā§‡ āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ" āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ +āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ–āĻ¨āĻŋ āĻļā§āĻ°āĻŽāĻŋāĻ•āĻĻā§‡āĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻĒāĻžāĻ–āĻŋāĻĻā§‡āĻ° āĻ•āĻ¯āĻŧāĻ˛āĻž āĻ–āĻ¨āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ +āĻ¯āĻĻāĻŋ āĻ—āĻ¨ā§āĻ§āĻšā§€āĻ¨ āĻ•ā§āĻˇāĻ¤āĻŋāĻ•āĻžāĻ°āĻ• āĻ—ā§āĻ¯āĻžāĻ¸ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻĒāĻžāĻ–āĻŋāĻŸāĻŋ āĻŽāĻžāĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻāĻŦāĻ‚ āĻ–āĻ¨āĻŋ āĻļā§āĻ°āĻŽāĻŋāĻ•āĻ°āĻž āĻœāĻžāĻ¨āĻ¤ āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻ°ā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡, āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻ•ā§‹āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻ­ā§āĻ˛ āĻšāĻ˛ā§‡, āĻ˛āĻžāĻ‡āĻ­ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻŽā§‚āĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ "āĻ–āĻžāĻ˛āĻŋ āĻ•āĻ°āĻž" āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ•ā§ŒāĻļāĻ˛ āĻ¯āĻ¤āĻ‡ āĻĒā§āĻ™ā§āĻ–āĻžāĻ¨ā§āĻĒā§āĻ™ā§āĻ– āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨, āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻŋāĻ›ā§ āĻŦāĻžāĻ— āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ 100% āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻšāĻ˛ā§‡ āĻ¤āĻž āĻ†āĻ°āĻ“ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻļāĻžāĻ˛ā§€ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ†āĻšāĻ°āĻŖ āĻ•āĻ°ā§‡ +āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻ¸āĻ°āĻžāĻ¨ā§‹āĻ° āĻ†āĻ—ā§‡āĨ¤ +āĻāĻ‡ āĻ•ā§ŒāĻļāĻ˛āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ•āĻŽāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ°ā§‹āĻ˛āĻŦā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ†āĻ°āĻ“ āĻ—āĻ­ā§€āĻ°āĻ­āĻžāĻŦā§‡ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/chaos-engineering.md b/content/bn/chaos-engineering.md new file mode 100644 index 0000000000..d3ca48f467 --- /dev/null +++ b/content/bn/chaos-engineering.md @@ -0,0 +1,18 @@ +--- +title: āĻ•ā§‡āĻ“āĻ¸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ (Chaos Engineering) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§‡āĻ“āĻ¸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ (Chaos Engineering) āĻŦāĻž CE āĻšāĻ˛ [āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ (distributed system)](/bn/distributed-systems/) āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ¯āĻžāĻ¤ā§‡ āĻ•ā§‡āĻžāĻ˛āĻžāĻšāĻ˛āĻĒā§‚āĻ°ā§āĻŖ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻšā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻšā§ŸāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +[SRE (Site reliability engineering)](/bn/site-reliability-engineering/) āĻāĻŦāĻ‚ [DevOps](/bn/devops/) āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡, āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž (resiliency) āĻāĻŦāĻ‚ [āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (reliability)](/bn/reliability/) āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻ•ā§ŒāĻļāĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°ā§‡āĨ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ¸āĻšā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ–ā§āĻŦ āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨ā§€ā§ŸāĨ¤ āĻāĻŽāĻ¨ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĻāĻŋāĻ• āĻœāĻĄāĻŧāĻŋāĻ¤ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ†āĻ‰āĻŸā§‡āĻœā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ (infrastructure), āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ (platform), āĻŦāĻž ([āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• (microservices)](/bn/microservices/)) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…āĻ‚āĻļāĨ¤ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻŋāĻšāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ–ā§āĻŦ āĻ¤āĻžā§œāĻžāĻ¤āĻžā§œāĻŋ āĻāĻ•ā§‡āĻ° āĻĒāĻ° āĻāĻ• āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻĢāĻ˛ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ (downtime) āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡ā§œā§‡ āĻ¯āĻžā§Ÿ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤āĻ° āĻ˜āĻŸāĻ¨āĻžāĻ“ āĻ˜āĻŸāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ — āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋāĻĒā§‚āĻ°ā§āĻŖāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•ā§‡āĻ“āĻ¸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻšāĻ˛ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ•ā§ŒāĻļāĻ˛āĨ¤ āĻāĻŸāĻŋ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ (Infrustracture), āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ (Platform) āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° (Application failure) āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦāĻž āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ¸ā§āĻŦ-āĻ¨āĻŋāĻ°āĻžāĻŽāĻ¯āĻŧ (Self-heal) āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‡āĻ“āĻ¸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻ°āĻž āĻ•ā§‡ā§ŸāĻ¸ āĻāĻ•ā§āĻ¸āĻĒā§‡āĻ°āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‡āĻžā§āĻœā§‡āĻ•ā§āĻŸ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ¤ā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ•ā§‡ā§ŸāĻ¸ āĻāĻ•ā§āĻ¸āĻĒā§‡āĻ°āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ…āĻ¨ā§āĻ§ āĻĻāĻžāĻ— (Blind-spots) āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻž (āĻ¯ā§‡āĻŽāĻ¨ Monitoring āĻŦāĻž Autoscaling āĻ•ā§ŒāĻļāĻ˛) āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻ˜āĻŸāĻ¨āĻžāĻ° āĻ¸āĻŽā§Ÿā§‡ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻžāĨ¤ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨ āĻĻāĻ˛ā§‡āĻ° āĻ†āĻ¸ā§āĻĨāĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧāĨ¤ diff --git a/content/bn/client-server-architecture.md b/content/bn/client-server-architecture.md new file mode 100644 index 0000000000..4021dca0c5 --- /dev/null +++ b/content/bn/client-server-architecture.md @@ -0,0 +1,36 @@ +--- +title: āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ (Client-Server Architecture) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["architecture", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ (Client-Server Architecture), āĻ¯ā§āĻ•ā§āĻ¤āĻŋ (āĻŦāĻž āĻ•ā§‹āĻĄ) āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻĻā§āĻ‡ āĻŦāĻž āĻ¤āĻ¤ā§‹āĻ§āĻŋāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻšāĻ¯āĻŧāĻƒ +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¯ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻ˛ā§‡ +(āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧā§‡āĻŦ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻœāĻŋāĻŽā§‡āĻ‡āĻ˛ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨), +āĻāĻŦāĻ‚ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¯āĻž āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§‡ +(āĻ¯ā§‡āĻŽāĻ¨ "āĻ‡āĻŽā§‡āĻ˛ āĻĒāĻžāĻ āĻžāĻ¨" āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ āĻ—ā§āĻ—āĻ˛-āĻāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻšāĻ˛āĻ›ā§‡)āĨ¤ +āĻāĻ‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ˛ā§‡āĻ–āĻž āĻŦāĻšāĻŋāĻ°ā§āĻ—āĻžāĻŽā§€ āĻ‡āĻŽā§‡āĻ˛ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ (āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧā§‡āĻŦ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (web application)) +āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ (āĻœāĻŋāĻŽā§‡āĻ‡āĻ˛ (gmail) āĻāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°, āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦāĻšāĻŋāĻ°ā§āĻ—āĻžāĻŽā§€ āĻŽā§‡āĻ‡āĻ˛ (mail) āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻžāĻĒāĻ•āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻ¨ āĻ•āĻ°ā§‡)āĨ¤ + +āĻāĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦā§ˆāĻĒāĻ°ā§€āĻ¤ā§āĻ¯ āĻ•āĻ°ā§‡ (āĻ¯ā§‡āĻŽāĻ¨ āĻĄā§‡āĻ¸ā§āĻ•āĻŸāĻĒ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨) āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻžāĻœ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻĢā§āĻŸ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄā§‡āĻ° (Microsoft Word) āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ā§‡āĻ° (client-server architecture) āĻāĻ•āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž, āĻ¯ā§‡āĻŽāĻ¨ : āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ†āĻĒāĻĄā§‡āĻŸāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°ā§āĻ¨ āĻ…ā§āĻ¯āĻžāĻŽāĻžāĻœāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ¨ā§āĻ¯ā§‡āĻ° āĻ•ā§āĻ¯āĻžāĻŸāĻžāĻ˛āĻ— āĻŦā§āĻ°āĻžāĻ‰āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ¤ā§‡ āĻ†āĻĒāĻŖāĻžāĻ•ā§‡ āĻ†āĻ—ā§‡ āĻ¸āĻŦ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡! + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° (server) āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡, +āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻ°āĻž āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ‡āĻĄā§‡ (client-side) āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻāĻŸāĻŋ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻžā§Ÿ āĻ…āĻ¨ā§‡āĻ• āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻāĻ•āĻ‡ āĻĄā§‡āĻŸāĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° (word processor) āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° (word processor,) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§āĻ¨āĨ¤ +āĻĒā§‚āĻ°ā§āĻŦā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°-āĻ¸āĻžāĻ‡āĻĄā§‡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻ•āĻ¤ā§‹ āĻāĻŦāĻ‚ +āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‹ āĻ¯āĻžāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‹āĨ¤ +āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻœāĻ—āĻ¤ā§‡ (Legacy World), āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻ…āĻĒāĻ¸āĻžāĻ°āĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ (copied) āĻ•āĻ°āĻž (floppy disks!) āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ diff --git a/content/bn/cloud-computing.md b/content/bn/cloud-computing.md index 362105c418..68aca3d72b 100644 --- a/content/bn/cloud-computing.md +++ b/content/bn/cloud-computing.md @@ -2,6 +2,7 @@ title: āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ (Cloud Computing) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "fundamental", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ @@ -14,4 +15,4 @@ category: āĻ§āĻžāĻ°āĻŖāĻž ## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ -āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¸āĻŽā§‚āĻš āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ°ā§āĻĨā§‡āĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§‡ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ­āĻžāĻĄāĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ: āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ­ā§ŒāĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡ āĻ…āĻ°ā§āĻĨ āĻŦāĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻĒāĻšāĻ¯āĻŧ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻāĻŦāĻ‚ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ [āĻ¸ā§āĻ•ā§‡āĻ˛(scale)](/scalability/) āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¸āĻŽā§‚āĻš āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻŦāĻž āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŽā§‹āĻ¤āĻžāĻŦā§‡āĻ• āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¸āĻŽā§‚āĻš āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ°ā§āĻĨā§‡āĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§‡ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ­āĻžāĻĄāĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ: āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ­ā§ŒāĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡ āĻ…āĻ°ā§āĻĨ āĻŦāĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻĒāĻšāĻ¯āĻŧ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻāĻŦāĻ‚ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ [āĻ¸ā§āĻ•ā§‡āĻ˛(scale)](/bn/scalability/) āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¸āĻŽā§‚āĻš āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻŦāĻž āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŽā§‹āĻ¤āĻžāĻŦā§‡āĻ• āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/cloud-native-apps.md b/content/bn/cloud-native-apps.md new file mode 100644 index 0000000000..2b66ca48df --- /dev/null +++ b/content/bn/cloud-native-apps.md @@ -0,0 +1,32 @@ +--- +title: āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒāĻ¸ (Cloud Native Apps) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["application", "fundamental", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ (Cloud Computing)](/bn/cloud-computing/)-āĻ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœ āĻ¨āĻŋāĻœ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/scalability/) āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋā§Ÿā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡(infrastructure) āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ—ā§āĻ°āĻšāĻŖāĻ•āĻžāĻ°ā§€ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡āĻ“ āĻŦā§‹āĻāĻžāĻ¯āĻŧāĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ†āĻœāĻ•ā§‡ āĻāĻŽāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ° āĻĄā§‡āĻŸāĻžāĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡(data-center) āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ…āĻ¨-āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻ¸ā§‡(on-premise) āĻšāĻ˛ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ…āĻ¨-āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻ¸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ—ā§āĻ˛āĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĨ¤ +āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĄā§‡āĻŸāĻžāĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ°(data-center) āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ [āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤](/bn/tightly-coupled-architectures/) āĻ•āĻ°ā§‡, +āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (Virtual Machine)](/bn/virtual-machine/) āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻŽāĻ¤ā§‹ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ°(infrastructure) āĻœāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ°(manual provisioning) āĻ‰āĻĒāĻ° āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻ¯āĻžāĻ° āĻĢāĻ˛ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ° āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§‡āĻ‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ•āĻ°ā§‡āĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚(scaling) āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻžāĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒā§‡āĻ°(manual intervention) āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻāĻŽāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛(scale) āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻž, +āĻ…āĻĨāĻŦāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¯āĻĻāĻŋāĻ“ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨āĻ“ "āĻāĻ• āĻŽāĻžāĻĒ āĻ¸āĻŦ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻŽāĻžāĻ¨āĻžāĻ¨āĻ¸āĻ‡" āĻĒāĻĨ āĻ¨ā§‡āĻ‡, āĻ¤āĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻŽāĻŋāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•, āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĨāĻžāĻ•āĻž āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻ¯ā§āĻŸ(suite) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§ˇ +āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ‰āĻšā§āĻš āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ°(high degree) [āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Observability)](observability)(/bn/observability/) āĻ¸āĻ•ā§āĻˇāĻŽ, +āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻŦā§ƒāĻĻā§āĻ§āĻŋāĻ° āĻ†āĻ—ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽāĨ¤ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĻā§ƒāĻĸāĻŧ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ā§‡āĻ°(automation) āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻšā§Ÿā§‡ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋā§ŸāĻžāĻ°āĻĻā§‡āĻ°(engineer) āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻļā§āĻ°āĻŽā§‡āĻ° āĻŽāĻžāĻĻā§āĻ§āĻŽā§‡ āĻ‰āĻšā§āĻš-āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤(high-impact) āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻŋāĻ–ā§āĻāĻ¤āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/cloud-native-security.md b/content/bn/cloud-native-security.md index a7e8a921ea..7cdd1b639f 100644 --- a/content/bn/cloud-native-security.md +++ b/content/bn/cloud-native-security.md @@ -2,11 +2,12 @@ title: āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž (Cloud Native Security) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["security", "", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ -āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/cloud-native-apps/) āĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŽāĻ—ā§āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻ…āĻ‚āĻļāĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ, āĻ¯āĻĨāĻž āĻĻā§āĻ°ā§āĻ¤ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ‚ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ•ā§āĻˇāĻŖāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ¸āĻžāĻĨā§‡ āĻ–āĻžāĻĒ āĻ–āĻžāĻ“āĻ¯āĻŧāĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŽāĻĄā§‡āĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧāĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž [DevSecOps](/devsecops/) āĻ¨āĻžāĻŽāĻ• āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤āĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/bn/cloud-native-apps/) āĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŽāĻ—ā§āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻ…āĻ‚āĻļāĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ, āĻ¯āĻĨāĻž āĻĻā§āĻ°ā§āĻ¤ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ‚ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ•ā§āĻˇāĻŖāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ¸āĻžāĻĨā§‡ āĻ–āĻžāĻĒ āĻ–āĻžāĻ“āĻ¯āĻŧāĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŽāĻĄā§‡āĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧāĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž [DevSecOps](/bn/devsecops/) āĻ¨āĻžāĻŽāĻ• āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤āĨ¤ ## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ diff --git a/content/bn/cloud-native-tech.md b/content/bn/cloud-native-tech.md index 057a7b7b3a..7885837b86 100644 --- a/content/bn/cloud-native-tech.md +++ b/content/bn/cloud-native-tech.md @@ -2,13 +2,14 @@ title: āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ (Cloud Native Technology) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["fundamental", "", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ -āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻŸā§‡āĻ•āĻ¨ā§‹āĻ˛āĻœāĻŋ, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻšāĻŋāĻ¸ā§‡āĻŦā§‡āĻ“ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/cloud-native-apps/) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĨ¤ āĻ¸āĻ°āĻ•āĻžāĻ°ā§€, āĻĒā§āĻ°āĻžāĻ‡āĻ­ā§‡āĻŸ āĻāĻŦāĻ‚ āĻšāĻžāĻ‡āĻŦā§āĻ°āĻŋāĻĄ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ†āĻ§ā§āĻ¨āĻŋāĻ•, āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž 'āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ' āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–ā§‡ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ˛āĻžāĻ­ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°, āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ, āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻāĻŦāĻ‚ āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ•ā§‡ āĻ•āĻžāĻœā§‡ āĻ˛āĻžāĻ—āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ āĻ†āĻĒ āĻĨā§‡āĻ•ā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻŸā§‡āĻ•āĻ¨ā§‹āĻ˛āĻœāĻŋ, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻšāĻŋāĻ¸ā§‡āĻŦā§‡āĻ“ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/bn/cloud-native-apps/) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĨ¤ āĻ¸āĻ°āĻ•āĻžāĻ°ā§€, āĻĒā§āĻ°āĻžāĻ‡āĻ­ā§‡āĻŸ āĻāĻŦāĻ‚ āĻšāĻžāĻ‡āĻŦā§āĻ°āĻŋāĻĄ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ†āĻ§ā§āĻ¨āĻŋāĻ•, āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž 'āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ' āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–ā§‡ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ˛āĻžāĻ­ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°, āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ, āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻāĻŦāĻ‚ āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ•ā§‡ āĻ•āĻžāĻœā§‡ āĻ˛āĻžāĻ—āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ āĻ†āĻĒ āĻĨā§‡āĻ•ā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĨ¤ -## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°ā§‡ +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°ā§‡ā§ˇ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ [CNCF āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ¸ā§āĻ•ā§‡āĻĒ](https://landscape.cncf.io/) āĻĻā§‡āĻ–ā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻžā§āĻšāĻ˛āĻ•ā§‡ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ‰āĻšā§āĻš āĻ¸ā§āĻ¤āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§‡āĻŸāĻ•ā§‡ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°ā§‡: āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ†āĻ‡āĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻŽāĻĄā§‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻĄāĻžāĻ‰āĻ¨āĻ¸āĻžāĻ‡āĻĄāĻ¸āĨ¤ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯, āĻ¤ā§āĻ°ā§āĻŸāĻŋ-āĻ¸āĻšāĻ¨āĻļā§€āĻ˛, āĻ¸ā§āĻŦ-āĻ¨āĻŋāĻ°āĻžāĻŽāĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ…āĻĻāĻ•ā§āĻˇ āĻ¸āĻŽā§āĻĒāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻ…āĻ¨ā§āĻ¯āĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡āĨ¤ diff --git a/content/bn/cluster.md b/content/bn/cluster.md index a2650a685b..49c43c53e2 100644 --- a/content/bn/cluster.md +++ b/content/bn/cluster.md @@ -2,15 +2,16 @@ title: āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° (Cluster) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "fundamental", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ -āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻĒ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡, āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻ˛ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ (āĻŦāĻž āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ) āĻ¯āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĒāĻžāĻ¤ā§āĻ°ā§‡ āĻšāĻ˛ā§‡, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ(Containerized)](/containerization/) āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ‚āĻ—ā§āĻ°āĻš, āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻĒ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡, āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻ˛ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ (āĻŦāĻž āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ) āĻ¯āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĒāĻžāĻ¤ā§āĻ°ā§‡ āĻšāĻ˛ā§‡, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ(Containerized)](/bn/containerization/) āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ‚āĻ—ā§āĻ°āĻš, āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°ā§‡āĨ¤ ## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ -āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻšāĻ˛āĻž āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ — āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻŸāĻŋ āĻ•ā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻŦāĻž āĻ•ā§‡āĻ‰ āĻĻā§āĻ°ā§āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§‡āĻŦāĻ˛āĻŸāĻŋ āĻ†āĻ¨āĻĒā§āĻ˛āĻžāĻ— āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻž-āĻ¸āĻ‚āĻ•ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡āĻ‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨(Distributed application)](/distributed-apps/) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ—ā§āĻ°ā§āĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻšāĻ˛āĻž āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ — āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻŸāĻŋ āĻ•ā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻŦāĻž āĻ•ā§‡āĻ‰ āĻĻā§āĻ°ā§āĻ˜āĻŸāĻ¨āĻžāĻ•ā§āĻ°āĻŽā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§‡āĻŦāĻ˛āĻŸāĻŋ āĻ†āĻ¨āĻĒā§āĻ˛āĻžāĻ— āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻž-āĻ¸āĻ‚āĻ•ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡āĻ‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨(Distributed application)](/bn/distributed-apps/) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ—ā§āĻ°ā§āĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ ## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ diff --git a/content/bn/container-image.md b/content/bn/container-image.md new file mode 100644 index 0000000000..0f03cac749 --- /dev/null +++ b/content/bn/container-image.md @@ -0,0 +1,18 @@ +--- +title: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ (Container Image) +status: Feedback Appreciated +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ, āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ āĻ¯āĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°](/bn/container/) āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ (single executable) āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻĢāĻžāĻ‡āĻ˛, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸā§āĻ˛āĻ¸, āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨](/bn/containerization/) āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ (āĻ¸āĻŋāĻ†āĻ°āĻ†āĻ‡) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§‡āĻŸāĻŋāĻ­ (OCI) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ (environment) āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ­ā§āĻ˛ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻ•ā§āĻ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻŦāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° (failed deployments) āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĨāĻžāĻ•āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨; āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĒāĻ°āĻŋāĻŦā§‡āĻļ-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ (environment-related) āĻŦāĻžāĻ—āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ¯āĻ–āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ—ā§āĻ˛āĻŋ āĻ…āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŦāĻž āĻ­ā§āĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ,āĻ¤āĻ–āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• (horizontal)](/bn/horizontal-scaling/) āĻāĻŦāĻ‚ [āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ (vertical)](/bn/vertical-scaling/) āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ āĻ¤āĻžāĻ° āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž, āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ (bundle) āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°ā§‡āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¸āĻš āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻœā§āĻĄāĻŧā§‡ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ¤āĻž (consistency) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ā§ˇ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœāĻ—ā§āĻ˛ā§‹ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĻŽāĻ¤ āĻ¤āĻžā§ŽāĻ•ā§āĻˇāĻŖāĻŋāĻ• āĻ¯āĻ¤āĻ–ā§āĻļāĻŋ āĻ¤āĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻž āĻŦā§‡āĻļāĻŋ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ](/bn/scalability/) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ \ No newline at end of file diff --git a/content/bn/container.md b/content/bn/container.md index 507d21301a..f7ceed0507 100644 --- a/content/bn/container.md +++ b/content/bn/container.md @@ -2,6 +2,7 @@ title: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° (Container) status: Completed category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["application", "fundamental", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ @@ -16,4 +17,4 @@ category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻāĻ° āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡, āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ“āĻ­āĻžāĻ°āĻšā§‡āĻĄ āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻĻāĻ•ā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻ­āĻŦ āĻ•āĻžāĻ°āĻŖ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ¤ā§‡ āĻ¸ā§€āĻŽāĻŋāĻ¤āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻ‡ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ -āĻ¤āĻŦā§‡ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ†āĻ›ā§‡āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ•āĻŽ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŦāĻ˛ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ā§ˇ āĻ§āĻžāĻ°āĻ•āĻĻā§‡āĻ°āĻ“ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ¸ā§€āĻŽāĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ¨āĻŋāĻļā§āĻšāĻ¯āĻŧāĻ¤āĻž āĻĻāĻŋāĻ¤ā§‡, āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•āĻĻā§‡āĻ° āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻŦāĻ‚ āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ°āĻžāĻĒāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻ¤āĻŦā§‡ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ†āĻ›ā§‡āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ•āĻŽ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŦāĻ˛ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ā§ˇ āĻ§āĻžāĻ°āĻ•āĻĻā§‡āĻ°āĻ“ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ¸ā§€āĻŽāĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ¨āĻŋāĻļā§āĻšāĻ¯āĻŧāĻ¤āĻž āĻĻāĻŋāĻ¤ā§‡, āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•āĻĻā§‡āĻ° āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻŦāĻ‚ āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ–āĻžāĻ°āĻžāĻĒāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ \ No newline at end of file diff --git a/content/bn/containerization.md b/content/bn/containerization.md new file mode 100644 index 0000000000..12ddb7e70e --- /dev/null +++ b/content/bn/containerization.md @@ -0,0 +1,19 @@ +--- +title: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ (Containerization) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["application", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻāĻ° āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ¸āĻŽā§‚āĻšāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ (Container Image) āĻ āĻŦāĻžāĻ¨ā§āĻĄāĻŋāĻ˛ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ [āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§‡āĻŸāĻŋāĻ­](https://opencontainers.org) (OCI) āĻŽāĻžāĻ¨ āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻāĻ‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛ā§‡, āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻŸā§āĻ˛ āĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻšāĻŋāĻ¨ā§āĻ¤āĻžāĻ° āĻŦāĻŋāĻˇā§Ÿ āĻ¨āĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻšāĻ˛āĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ [āĻŦā§‡āĻ¯āĻŧāĻžāĻ°-āĻŽā§‡āĻŸāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (bare-metal machine)](/bn/bare_metal_machine/) āĻāĻ° āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° (VM) āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°āĻ¤āĨ¤ āĻ­āĻŋāĻāĻŽāĻ—ā§āĻ˛āĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻŦāĻĄāĻŧ āĻāĻŦāĻ‚ āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ‡ āĻŦā§ƒāĻšā§Ž āĻ­āĻŋāĻāĻŽ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ, āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§‡āĻ° āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ āĻ•āĻžāĻ°āĻŖā§‡ āĻ­āĻŋāĻāĻŽ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ“ āĻāĻ•āĻŸāĻŋ āĻ§ā§€āĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡, āĻ­āĻŋāĻāĻŽāĻ—ā§āĻ˛āĻŋ āĻ¯āĻĻāĻŋ [āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛āĻ¤āĻž (immutability)](/bn/immutable-infrastructure//) āĻ¨ā§€āĻ¤āĻŋ āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĄā§āĻ°āĻŋāĻĢāĻŸā§‡ āĻ­ā§āĻ—āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¤āĻĨā§āĻ¯āĻ¸āĻŽā§‚āĻš āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ†āĻ•āĻžāĻ°ā§‡ āĻ°āĻžāĻ–āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœāĻ—ā§āĻ˛āĻŋ (āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ­āĻŋāĻāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ) āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻšāĻžāĻ˛āĻ•āĻž āĻ“āĻœāĻ¨ā§‡āĻ° āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…āĻŸā§‹āĻŽā§‡āĻŸāĻŋāĻ• āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¯āĻ–āĻ¨ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ¯āĻ¨ā§āĻ¤ā§āĻ°āĻžāĻ‚āĻļā§‡āĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻāĻ° āĻ¸āĻ āĻŋāĻ• āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•ā§‡āĨ¤āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ‚ āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ, āĻ¤āĻžāĻ‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‚āĻ° āĻ•āĻ°ā§‡āĨ¤ + diff --git a/content/bn/containers-as-a-service.md b/content/bn/containers-as-a-service.md new file mode 100644 index 0000000000..1cf27057b8 --- /dev/null +++ b/content/bn/containers-as-a-service.md @@ -0,0 +1,32 @@ +--- +title: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻāĻœ āĻ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (Containers as a Service) +status: Deprecated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["platform", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻāĻœ āĻ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (CaaS) āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡ +[āĻ§āĻžāĻ°āĻ•](/bn/container/)-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• [āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž](/bn/abstraction) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ™ā§āĻ—āĻ¨ā§‡(on-premises) āĻŦāĻž āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +CaaS āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦāĻž āĻ…āĻ°ā§āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯āĻž āĻŽā§‚āĻ˛ āĻ†āĻ‡āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•āĻ¨ā§āĻŸā§‡āĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻāĻŸāĻŋ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻ¯ā§‹āĻ—ā§āĻ¯](/bn/scalable/) āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ āĻ…ā§āĻ¯āĻžāĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡āĨ¤ +āĻ•āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ‡ āĻ•ā§‡āĻ¨ā§‡āĻ¨ (āĻļāĻŋāĻĄāĻŋāĻ‰āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), +āĻ¤āĻžāĻ°āĻž āĻ…āĻ°ā§āĻĨ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°ā§‡āĨ¤ + +āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻŦāĻŋāĻ•āĻžāĻļ āĻāĻŦāĻ‚ āĻĄā§‡āĻ˛āĻŋāĻ­āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ-āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨](/bn/cloud-native-apps/) āĻ¯āĻž āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻšāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +CaaS āĻŦā§āĻ¯āĻ¤ā§€āĻ¤, āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨, āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ CaaS āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, +āĻ˛āĻ— āĻāĻ—ā§āĻ°āĻŋāĻ—ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻŸā§āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§‡ āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨āĻ¤āĻž āĻ˛āĻžāĻ­ āĻ•āĻ°ā§‡āĨ¤ +CaaS-āĻ [āĻ…āĻŸā§‹ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/auto-scaling/) āĻāĻŦāĻ‚ āĻ…āĻ°ā§āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰āĻšā§āĻš āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨āĻ¤āĻž āĻāĻŦāĻ‚ āĻ‰āĻšā§āĻš āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž [āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ](/bn/distributed-systems/) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĨ¤ +āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡, CaaS āĻŸāĻŋāĻŽ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŦā§‡āĻ— āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧāĨ¤ +āĻ¯āĻĻāĻŋāĻ“ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ• āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡, CaaS āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ [DevOps](/devops/) āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ–āĻ°āĻš āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/continuous-delivery.md b/content/bn/continuous-delivery.md new file mode 100644 index 0000000000..162cdb2df5 --- /dev/null +++ b/content/bn/continuous-delivery.md @@ -0,0 +1,31 @@ +--- +title: āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (Continuous Delivery) (CD) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "application", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (continuous delivery), āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ CD āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤, āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ…āĻĨāĻŦāĻž, āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° (continuous deployment) āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡)āĨ¤ +āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° (deployment) āĻ†āĻ—ā§‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋ (software) āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ CD āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŽāĻ¨ā§‡ āĻšāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ°ā§‹āĻ˛āĻŦā§āĻ¯āĻžāĻ• (rollback) āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ +āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (continuous integration) (CI) āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡āĻ° (continuous delivery) āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ +(āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻ†āĻ—ā§‡ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡)āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +[āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ (reliable)](/bn/reliability/) āĻ†āĻĒāĻĄā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ (deploying) āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻ•ā§‡āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¯āĻŧā§‡ āĻĻāĻžāĻāĻĄāĻŧāĻžāĻ¯āĻŧāĨ¤ +āĻ†āĻĻāĻ°ā§āĻļāĻ­āĻžāĻŦā§‡, āĻļā§‡āĻˇ-āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ āĻŽā§‚āĻ˛ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻ°āĻ“ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ (deliver) āĻ•āĻ°āĻŦāĨ¤ +āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻāĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ (manually) āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻšā§āĻš āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° āĻ–āĻ°āĻšā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻāĻ‡ āĻ–āĻ°āĻšāĻ—ā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§‡, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ•āĻŽ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻŽā§āĻ•ā§āĻ¤āĻŋ (released) āĻ•āĻ°ā§‡, āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻ…āĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ­ā§āĻ˛ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻā§āĻāĻ•āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +CD āĻ•ā§ŒāĻļāĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻĨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ•ā§ŒāĻļāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ (deploy) āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻŽāĻ¨ [āĻ•ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ (canary)](/bn/canary-deployment/) āĻŦāĻž [āĻ¨ā§€āĻ˛-āĻ¸āĻŦā§āĻœ (blue-green)](/bn/blue-green-deployment/) āĻ°āĻŋāĻ˛āĻŋāĻœ (releases)āĨ¤ +āĻāĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ°āĻ•ā§‡ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ•ā§‹āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ (deploy) āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ¨ā§‡ āĻļāĻžāĻ¨ā§āĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤,āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻļāĻžāĻ–āĻž (feature branching) āĻŦāĻž āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° (pull requests) āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡ āĻŸā§āĻ°āĻžāĻ™ā§āĻ•-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• (trunk-based) āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ CD āĻ•ā§ŒāĻļāĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (Continuous Integration)](/bn/continuous-integration/) +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (Continuous Deployment)](/bn/continuous-deployment/) diff --git a/content/bn/continuous-deployment.md b/content/bn/continuous-deployment.md new file mode 100644 index 0000000000..91aa57af1e --- /dev/null +++ b/content/bn/continuous-deployment.md @@ -0,0 +1,29 @@ +--- +title: āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (Continuous Deployment (CD)) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["application", "methodology", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (Continuous Deployment), āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ CD āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (Continuous Delivery)](/bn/continuous-delivery/) āĻĨā§‡āĻ•ā§‡ āĻāĻ• āĻ§āĻžāĻĒ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ +āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (CD) [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (Continuous Integration)](/bn/continuous-integration/) (CI) āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻžāĻ¤ āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ CI/CD āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§ˆāĻ§ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž CI āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ CD āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻĨā§‡āĻ•ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ•ā§‹āĻĄā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻļā§āĻ°āĻŽ-āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋ-āĻĒā§āĻ°āĻŦāĻŖ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¯āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ˜āĻŸāĻ¨āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĨāĻžāĻ•āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻŽāĻžāĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧāĨ¤ +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻŽāĻĄā§‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻˇā§āĻŸ āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĢā§‡āĻ˛ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ā§‡āĻ° āĻŦā§‡āĻ— āĻ‰āĻ­āĻ¯āĻŧā§‡āĻ° āĻšāĻžāĻ°āĻĒāĻžāĻļā§‡ āĻ¸āĻžāĻ‚āĻ—āĻ āĻ¨āĻŋāĻ• āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŽā§‡āĻŸāĻžāĻ¤ā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ°āĻŋāĻ˛āĻŋāĻœ āĻšāĻ•ā§āĻ°āĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ˜āĻ¨ āĻ˜āĻ¨ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻŽā§āĻ•ā§āĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, CI āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻŸāĻŋāĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ•āĻ°ā§‡ CD āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĻāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ‡ āĻ•āĻ°ā§‡āĨ¤ +āĻŦāĻŋāĻļā§‡āĻˇāĻ¤, āĻāĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻŦā§‡āĻĻāĻ¨āĻžāĻĻāĻžāĻ¯āĻŧāĻ• āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋ-āĻĒā§āĻ°āĻŦāĻŖ āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°ā§‡, āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻā§āĻāĻ•āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻāĻŦāĻ‚ āĻŽāĻžāĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡, āĻ¯āĻž āĻ‰āĻšā§āĻš āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻžāĻ° āĻĻāĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (Continuous Integration)](/bn/continuous-integration/) +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (Continuous Delivery)](/bn/continuous-delivery/) diff --git a/content/bn/continuous-integration.md b/content/bn/continuous-integration.md new file mode 100644 index 0000000000..725918ff0b --- /dev/null +++ b/content/bn/continuous-integration.md @@ -0,0 +1,30 @@ +--- +title: āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (Continuous Integration) (CI) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["application", "methodology", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•ā§€āĻ•āĻ°āĻŖ (Continuous integration), āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ CI āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻ¯āĻ¤āĻŸāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĨ¤ +CI āĻšāĻ˛ [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (Continuous Delivery)](/bn/continuous-delivery/) (CD) āĻāĻ° āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤āĨ¤ +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, CI āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¯āĻ–āĻ¨ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰ā§ŽāĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ° (Git, Mercurial, āĻŦāĻž Subversion) āĻĒā§āĻ°āĻ¤āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ CD āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—ā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻŋāĻ¤ āĻ†āĻ°ā§āĻŸāĻŋāĻĢā§āĻ¯āĻžāĻ•ā§āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦāĻĄāĻŧ āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛ āĻšāĻ¯āĻŧ, āĻ…āĻ¸āĻ‚āĻ–ā§āĻ¯ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻ¤āĻžāĻĻā§‡āĻ° āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°ā§‡āĨ¤ +āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ‚āĻļā§‡ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻāĻ‡ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻĒāĻ°āĻ¸ā§āĻĒāĻ°āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨āĻ¤āĻžāĻŦāĻļāĻ¤ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ•āĻžāĻœ āĻ­ā§‡āĻ™ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻ•āĻ‡ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ° āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻĻā§ˆāĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻ•āĻžāĻœ āĻ¯ā§‡āĻŽāĻ¨ āĻŸā§‡āĻ¸ā§āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•ā§‹āĻĄā§‡āĻ° āĻ—ā§āĻŖāĻŽāĻžāĻ¨ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ•ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +CI āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻ–āĻ¨āĻ‡ āĻāĻ•āĻœāĻ¨ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻŽāĻŋāĻŸ (commits) āĻ•āĻ°ā§‡āĨ¤ +āĻ•ā§‹āĻĄā§‡āĻ° āĻ—ā§āĻŖāĻŽāĻžāĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ CI āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻ°ā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§€ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĨ¤ +āĻ¯ā§‡āĻŽāĻ¨, āĻāĻŸāĻŋ āĻĻāĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ•āĻ‚āĻ•ā§āĻ°āĻŋāĻŸ (concrete) āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ +CI āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§‹āĻĄ āĻ•āĻŽāĻŋāĻŸāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ‚āĻ•ā§āĻ°āĻŋāĻŸ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§€āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ (Continuous Delivery)](/bn/continuous-delivery/) +* [āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (Continuous Deployment)](/bn/continuous-deployment/) diff --git a/content/bn/data-center.md b/content/bn/data-center.md new file mode 100644 index 0000000000..3ce45d3263 --- /dev/null +++ b/content/bn/data-center.md @@ -0,0 +1,29 @@ +--- +title: āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° (Data center) +status: Feedback Appreciated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["infrastructure", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ­āĻŦāĻ¨ āĻŦāĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¯āĻž āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻšāĻžāĻ‰āĻœ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĻ—ā§āĻ˛āĻŋ āĻ‰āĻšā§āĻš-āĻ—āĻ¤āĻŋāĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•ā§‡, +āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](bn/cloud-computing/) āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§‡āĻ° āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ“ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ—ā§āĻ˛ā§‹āĻ° āĻ­āĻŦāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, +āĻ¯ā§‡āĻŽāĻ¨ āĻŦāĻŋāĻĻā§āĻ¯ā§ā§Ž āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻŸā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻŋāĻĻā§āĻ¯ā§ā§Ž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻ¤ā§‡ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ°, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¤āĻžāĻĒ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻļā§€āĻ¤āĻžāĻ¤āĻĒ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¤āĻžāĻ°āĻž āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ +āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻāĻ¸āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻĻā§‡āĻ° āĻŦā§œ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§‡ āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻļā§‡āĻˇ āĻœā§āĻžāĻžāĻ¨ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ +āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻļāĻ•ā§āĻ¤āĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš , āĻ…āĻ—ā§āĻ¨āĻŋ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ , āĻļā§€āĻ¤āĻžāĻ¤āĻĒ āĻ¨āĻŋā§ŸāĻ¨ā§āĻ¤ā§āĻ°āĻŖ, āĻ‰āĻšā§āĻš āĻ—āĻ¤āĻŋāĻ° āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ +āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° [āĻ¸ā§āĻ•ā§‡āĻ˛](bn/scalability/) āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, +āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāĻ¸ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ•āĻŽ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸āĻŋāĻ‚ āĻŦāĻž āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ¨āĻž āĻ•āĻ°ā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ­āĻžāĻĄāĻŧāĻž āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¸āĻžāĻ°āĻž āĻŦāĻŋāĻļā§āĻŦā§‡ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, +āĻāĻŸāĻŋ āĻ­ā§ŒāĻ—ā§‹āĻ˛āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ +āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻ†āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/database-as-a-service.md b/content/bn/database-as-a-service.md new file mode 100644 index 0000000000..c0f82ab730 --- /dev/null +++ b/content/bn/database-as-a-service.md @@ -0,0 +1,30 @@ +--- +title: āĻĄā§‡āĻŸāĻŦā§‡āĻ¸-āĻāĻœ-āĻ-āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (Database as a Service) (DBaaS) +status: Deprecated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +draft: true +tags: ["", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĄā§‡āĻŸāĻŦā§‡āĻ¸-āĻāĻœ-āĻ-āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (DBaaS) āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ "[āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ](/bn/cloud_computing/)" āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° (āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻŦāĻž āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤) āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž +āĻ¯ā§‡āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŸāĻŋāĻŽā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ā§ˇ +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨. +DBaaS āĻ…ā§āĻ¯āĻžāĻĒ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻŦāĻŋāĻļā§‡āĻˇāĻœā§āĻž āĻ¨āĻž āĻšāĻ¯āĻŧā§‡āĻ“ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ +āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ†āĻĒ āĻŸā§ āĻĄā§‡āĻŸ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻāĻ•āĻœāĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻŸā§āĻ°ā§‡āĻŸāĻ° (DBA) āĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ…āĻ¨-āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻ¸ āĻ¸ā§‡āĻŸāĻ†āĻĒā§‡, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦāĻŋāĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ +āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯āĻž āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ†āĻ‡āĻŸāĻŋ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§‡, +āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸-āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ—āĻ¤āĻŋ āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻāĻ—ā§āĻ˛āĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻ¤ā§‡āĻ“ āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻ—ā§‡ā§ˇ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +DBaaS āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨/āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨āĻŋāĻ• āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻ†āĻ‰āĻŸāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸āĻŸāĻŋ āĻ¸ā§āĻšāĻžāĻ°ā§āĻ­āĻžāĻŦā§‡ āĻšāĻ˛āĻ›ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ, āĻŦā§āĻ¯āĻžāĻ•āĻ†āĻĒ, āĻĒā§āĻ¯āĻžāĻš, āĻ†āĻĒāĻ—ā§āĻ°ā§‡āĻĄ, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ¤ā§‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĻā§‡āĻ¯āĻŧāĨ¤ +DBaaS āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ–āĻ°āĻš āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°āĻžāĻ‡āĻœ-āĻ—ā§āĻ°ā§‡āĻĄ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ•āĻžāĻļā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/debugging.md b/content/bn/debugging.md new file mode 100644 index 0000000000..46fe2ca9ee --- /dev/null +++ b/content/bn/debugging.md @@ -0,0 +1,30 @@ +--- +title: āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ (Debugging) +status: Deprecated +category: āĻ§āĻžāĻ°āĻŖāĻž +draft: true +tags: ["application", "methodology", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻšāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ, āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°, āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĨā§‡āĻ•ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§‡āĻ¤ā§‡ āĻŦāĻžāĻ—āĻ—ā§āĻ˛āĻŋ (āĻŦāĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ) āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ— āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯āĻž āĻ­ā§āĻ˛ āĻŦāĻž āĻ…āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒ āĻ¯āĻž āĻŦāĻžāĻ— āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻ›āĻžāĻĄāĻŧāĻž āĻ•ā§‹āĻĄ āĻ˛ā§‡āĻ–āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ…āĻ¸āĻŽā§āĻ­āĻŦ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ +āĻāĻ‡ āĻŦāĻžāĻ—āĻ—ā§āĻ˛āĻŋ āĻāĻŽāĻ¨ āĻ•ā§‹āĻĄā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ (āĻ…āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ†āĻšāĻ°āĻŖ) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻ¤āĻŸāĻž āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡, āĻŦāĻžāĻ—āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ — āĻ†āĻ°ā§āĻĨāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻŦāĻž āĻāĻŽāĻ¨āĻ•āĻŋ āĻŽāĻžāĻ¨ā§āĻˇā§‡āĻ° āĻœā§€āĻŦāĻ¨ā§‡āĻ“āĨ¤ +āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ•, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻŸāĻŋ āĻ¤āĻ¤ āĻŦā§‡āĻļāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¯āĻ–āĻ¨ āĻŦāĻžāĻ—āĻ—ā§āĻ˛āĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻŦāĻžāĻžā§āĻ›āĻŋāĻ¤ āĻ†āĻšāĻ°āĻŖ āĻ•āĻŽāĻžāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨, āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ āĻŋāĻ• āĻ•āĻ°āĻž)āĨ¤ +āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻ•ā§‹āĻ¨ āĻ¸āĻšāĻœ āĻ•āĻžāĻœ āĻ¨āĻ¯āĻŧ āĻ•āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ…āĻŦāĻžāĻžā§āĻ›āĻŋāĻ¤ āĻ†āĻšāĻ°āĻŖā§‡āĻ° āĻ‰ā§ŽāĻ¸ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻŦāĻ‚ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ— āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœā§āĻžāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ +āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻœā§‡ āĻ†āĻ¸ā§‡ā§ˇ +āĻ˛āĻ—, āĻŸā§āĻ°ā§‡āĻ¸ āĻāĻŦāĻ‚ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻ–āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ— āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŦāĻžāĻ° āĻ¤āĻžāĻ°āĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ‰ā§ŽāĻ¸ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻ¤āĻžāĻ°āĻž āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ— āĻĢāĻŋāĻ•ā§āĻ¸ āĻŦāĻž āĻĒā§āĻ¯āĻžāĻš āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ \ No newline at end of file diff --git a/content/bn/devops.md b/content/bn/devops.md index 116de1a2c3..fbc917e659 100644 --- a/content/bn/devops.md +++ b/content/bn/devops.md @@ -2,15 +2,16 @@ title: āĻĄā§‡āĻ­āĻ“āĻĒāĻ¸ (DevOps) status: Completed category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ āĻĄā§‡āĻ­āĻ“āĻĒāĻ¸ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ‰āĻšā§āĻš āĻĒāĻ°ā§āĻ¯āĻžā§Ÿ āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ§āĻ°āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻšāĻ¯āĻŧāĨ¤ āĻĄā§‡āĻ­āĻ“āĻĒāĻ¸ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻĻāĻ˛āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ°āĻž āĻ›ā§‹āĻŸ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ (āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ā§‡āĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡), āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ…āĻĢāĻ—ā§āĻ˛āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡ – āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ­ā§āĻ˛ā§‡āĻ° āĻ•āĻžāĻ°āĻ¨āĨ¤ -## āĻāĻŸāĻŋ āĻ¯ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ -āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻž [āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻŽāĻŋāĻ˛āĻŋāĻ¤](/tightly-coupled-architectures/) āĻ“ [āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒāĻ¸](/monolithic-apps/) āĻāĻ° āĻ•āĻžāĻœ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĻāĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ–āĻŖā§āĻĄāĻŋāĻ¤ āĻ›āĻŋāĻ˛ āĨ¤ āĻāĻŸāĻŋ āĻ…āĻ¸āĻ‚āĻ–ā§āĻ¯ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ…āĻĢ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āĻ˜ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡ā§ŸāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻ¯āĻ–āĻ¨āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻŦāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ›āĻŋāĻ˛, āĻāĻŸāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĻāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ…āĻ‚āĻļā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛, āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĢāĻ˛ā§‡ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ…āĻ­āĻžāĻŦ āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ›āĻŋāĻ˛ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĻāĻ˛ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻĒā§ŒāĻāĻ›ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž, āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻ āĻŋāĻ• āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•ā§‡ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦāĻ˛āĻž āĻ¯āĻžā§ŸāĨ¤ +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻž [āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻŽāĻŋāĻ˛āĻŋāĻ¤(Tightly coupled architectures)](/bn/tightly-coupled-architectures/) āĻ“ [āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒāĻ¸(Monolithic apps)](/bn/monolithic-apps/) āĻāĻ° āĻ•āĻžāĻœ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĻāĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ–āĻŖā§āĻĄāĻŋāĻ¤ āĻ›āĻŋāĻ˛ āĨ¤ āĻāĻŸāĻŋ āĻ…āĻ¸āĻ‚āĻ–ā§āĻ¯ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ…āĻĢ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āĻ˜ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡ā§ŸāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻ¯āĻ–āĻ¨āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻŦāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ›āĻŋāĻ˛, āĻāĻŸāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĻāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ…āĻ‚āĻļā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛, āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĢāĻ˛ā§‡ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ…āĻ­āĻžāĻŦ āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ›āĻŋāĻ˛ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĻāĻ˛ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻĒā§ŒāĻāĻ›ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž, āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻ āĻŋāĻ• āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•ā§‡ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦāĻ˛āĻž āĻ¯āĻžā§ŸāĨ¤ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ†āĻ¸āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻŸāĻŋ āĻāĻ¤ āĻŦā§‡āĻļāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ—āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻ¤ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§‡ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻ¯ā§‡ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ•āĻžāĻœ āĻ¨āĻž āĻ•āĻ°āĻ˛ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ‰ā§ŽāĻ¸ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻž āĻ•āĻ āĻŋāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻĄā§‡āĻ­āĻ“āĻĒāĻ¸ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ•ā§‡ āĻ‰āĻ˛ā§āĻŸā§‹ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/devsecops.md b/content/bn/devsecops.md new file mode 100644 index 0000000000..286f745958 --- /dev/null +++ b/content/bn/devsecops.md @@ -0,0 +1,26 @@ +--- +title: āĻĄā§‡āĻ­āĻ¸ā§‡āĻ•āĻ…āĻĒā§āĻ¸ (DevSecOps) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +--- + + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĄā§‡āĻ­āĻ¸ā§‡āĻ•āĻ…āĻĒā§āĻ¸ (DevSecOps) āĻļāĻŦā§āĻĻāĻŸāĻŋ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨, āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽ, āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦā§‡āĻ° āĻ¸āĻžāĻ‚āĻ¸ā§āĻ•ā§ƒāĻ¤āĻŋāĻ• āĻāĻ•ā§€āĻ•āĻ°āĻŖāĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧāĨ¤ +āĻāĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ° āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹āĻ¤ā§‡ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ•ā§‹āĻ¨āĻ“ āĻŦā§āĻ¯āĻžāĻ˜āĻžāĻ¤ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĄā§‡āĻ­āĻ…āĻĒā§āĻ¸ [(DevOps)](/bn/devops/) āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ā§ˇ +āĻĄā§‡āĻ­āĻ…āĻĒā§āĻ¸-āĻāĻ° āĻŽāĻ¤ā§‹, āĻĄā§‡āĻ­āĻ¸ā§‡āĻ•āĻ…āĻĒā§āĻ¸ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ‚āĻ¸ā§āĻ•ā§ƒāĻ¤āĻŋāĻ• āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨, āĻ¯āĻž āĻ—ā§ƒāĻšā§€āĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ ā§‡āĻ˛ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻ—ā§āĻ°āĻšāĻŖā§‡āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻšāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĄā§‡āĻ­āĻ…āĻĒā§āĻ¸ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ…āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻāĻ•ā§€āĻ•āĻ°āĻŖ [(continuous integration)](/bn/continuous-integration/) āĻāĻŦāĻ‚ +āĻ…āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž [(continuous deployment)](/continuous-delivery/) āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ•āĻžāĻļ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻšāĻ•ā§āĻ°āĻ•ā§‡ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°āĻžāĨ¤ +āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ‚āĻ—āĻ āĻ¨āĻŋāĻ• āĻ¸ā§āĻŸā§‡āĻ•āĻšā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻĻā§‡āĻ° āĻ¯āĻĨāĻžāĻ¯āĻĨāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻŦāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ¨āĻž āĻ•āĻ°ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§‡āĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ­āĻ™ā§āĻ—āĻŋāĻ•ā§‡ āĻ…āĻŦāĻ¨āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻĄā§‡āĻ­āĻ¸ā§‡āĻ•āĻ…āĻĒā§āĻ¸ āĻŸāĻŋāĻŽ āĻ¸āĻžāĻ‡āĻ˛ā§‹ (silos) āĻ­āĻžāĻ™ā§āĻ—āĻžāĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤, āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ CI/CD āĻ•āĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻš āĻāĻŦāĻ‚ +āĻ¨ā§€āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻž āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡āĨ¤āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻŸāĻŋ āĻŦā§āĻ˛āĻ•āĻžāĻ° āĻšāĻ“āĻ¯āĻŧāĻž āĻ¨āĻ¯āĻŧ āĻŦāĻ°āĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ•ā§‡ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ āĻŋāĻ• āĻ¤āĻĨā§āĻ¯ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĨ¤ +āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ˛ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻž āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛ āĻŸāĻŋāĻŽ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ˛āĻžāĻ­ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĻā§āĻ°ā§āĻ˜āĻŸāĻ¨āĻž āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ–āĻ°āĻš āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦā§‡āĨ¤ diff --git a/content/bn/distributed-apps.md b/content/bn/distributed-apps.md new file mode 100644 index 0000000000..58acc50701 --- /dev/null +++ b/content/bn/distributed-apps.md @@ -0,0 +1,23 @@ +--- +title: āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (Distributed Apps) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ›ā§‹āĻŸ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻ…āĻ‚āĻļā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§ƒāĻĨāĻ• [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋāĻ°](/bn/microservices-architecture/) āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻŦāĻŋāĻ¸ā§āĻ¤ā§ƒāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĻā§āĻŦā§‡āĻ— āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡, āĻĒā§ƒāĻĨāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ [āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡](/bn/cluster/) [āĻĒāĻžāĻ¤ā§āĻ°(container)](/bn/container/) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻāĻ•āĻ• āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ - āĻ¯āĻĻāĻŋ āĻ¸ā§‡āĻ‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻŸāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ…āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ +āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ [āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ°](/bn/monolithic-apps/) āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž āĻ•āĻ āĻŋāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ•āĻžāĻ°āĻŖ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ +āĻ¤āĻžāĻ°āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻāĻ° āĻ—āĻ¤āĻŋāĻ¤ā§‡āĻ“ āĻŸā§‡āĻ¨ā§‡ āĻ†āĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ•āĻžāĻ°āĻŖ āĻ†āĻ°āĻ“ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻ•ā§‹āĻĄāĻŦā§‡āĻ¸ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻžāĻ° āĻ…āĻ—āĻ¤ā§āĻ¯āĻž āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸ā§€āĻŽāĻžāĻ¨āĻž āĻ¨ā§‡āĻ‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ‚āĻļā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ†āĻ°āĻ“ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ¸āĻšā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¯ā§‡āĻŽāĻ¨ [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛](/bn/horizontal-scaling/) āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ +āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ–āĻ°āĻšā§‡ āĻ†āĻ¸ā§‡: āĻœāĻŸāĻŋāĻ˛āĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻšā§‡āĻĄ - āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻžāĻ˛āĻžāĻšā§āĻ›ā§‡āĻ¨āĨ¤ diff --git a/content/bn/distributed-systems.md b/content/bn/distributed-systems.md new file mode 100644 index 0000000000..064da9d532 --- /dev/null +++ b/content/bn/distributed-systems.md @@ -0,0 +1,30 @@ +--- +title: āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (Distributed System) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ¸ā§āĻŦāĻžāĻ¯āĻŧāĻ¤ā§āĻ¤āĻļāĻžāĻ¸āĻŋāĻ¤ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸ā§āĻ¸āĻ‚āĻ—āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [āĻ¨ā§‹āĻĄ](/bn/nodes/) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻ‡ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ (āĻ¯ā§‡āĻŽāĻ¨ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°, āĻŽā§‹āĻŦāĻžāĻ‡āĻ˛ āĻĢā§‹āĻ¨) āĻŦāĻž āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ…āĻ°ā§āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻšāĻ¯ā§‹āĻ—āĻŋāĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¤āĻžāĻ°āĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ†āĻœ āĻāĻ¤ āĻŦāĻĄāĻŧ āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻžāĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡āĨ¤ +āĻœāĻŋāĻŽā§‡āĻ‡āĻ˛ āĻŦāĻž āĻ¨ā§‡āĻŸāĻĢā§āĻ˛āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ•āĻĨāĻž āĻ­āĻžāĻŦā§āĻ¨āĨ¤ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ā§‹ āĻāĻ•āĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻ¨āĻ¯āĻŧāĨ¤ +āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ—āĻŖāĻ¨āĻžāĻ° āĻļāĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§€āĻŽāĻžāĻšā§€āĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ›āĻžāĻĄāĻŧāĻž, āĻ†āĻœāĻ•ā§‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§‡āĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛ āĻšāĻ“ā§ŸāĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ + + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦāĻ­āĻžāĻŦā§‡ [āĻ¸ā§āĻ•ā§‡āĻ˛](/bn/scalability/) āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻŋāĻĒāĻŋāĻ‰ (CPU) āĻŦāĻž āĻŽā§‡āĻŽāĻ°āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻ–āĻ¨āĻ‡āĨ¤ +āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻžāĻĒā§‡āĻ•ā§āĻˇ, āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤ āĻ¤āĻžāĻ° āĻ¸ā§€āĻŽāĻžāĻ¤ā§‡ āĻĒā§ŒāĻāĻ›ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ + + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ [ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/horizontal-scaling/) āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨ āĻ¯āĻ–āĻ¨āĻ‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ°āĻ“ āĻ¨ā§‹āĻĄ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž) | +āĻāĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻĻ āĻ–āĻ°āĻšā§‡ āĻšāĻ āĻžā§Ž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¨-āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻā§āĻāĻ•āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡ āĻ•āĻžāĻ°āĻŖ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻļāĻŋāĻ¨ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°ā§‹ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŽāĻ¨āĻ­āĻžāĻŦā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯ā§‡, āĻāĻŽāĻ¨āĻ•āĻŋ āĻ•āĻŋāĻ›ā§ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¨āĻŋāĻšā§‡ āĻ—ā§‡āĻ˛ā§‡āĻ“, āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻ•āĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ diff --git a/content/bn/edge-computing.md b/content/bn/edge-computing.md new file mode 100644 index 0000000000..087c3f7ace --- /dev/null +++ b/content/bn/edge-computing.md @@ -0,0 +1,17 @@ +--- +title: āĻāĻœ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ (Edge Computing) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻœ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ [āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ](/bn/distributed-systems/) āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ‰ā§ŽāĻ¸ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻ‚āĻ—ā§ƒāĻšā§€āĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨, āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°āĻ–āĻžāĻ¨āĻžāĻ° āĻŽā§‡āĻā§‡āĻ¤ā§‡,āĻāĻ•āĻŸāĻŋ āĻĻā§‹āĻ•āĻžāĻ¨ā§‡ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻļāĻšāĻ° āĻœā§āĻĄāĻŧā§‡) āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ (processing) āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ­ā§‚āĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡āĨ¤ āĻāĻ‡ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ āĻŦāĻž āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§‡āĻ° (edge) āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°ā§‡,āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻšāĻ˛ āĻāĻ° āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĨ¤ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§‡ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤ āĻāĻœ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻšāĻžāĻ¤ā§‡āĻ° āĻ•āĻŦā§āĻœāĻŋāĻ° āĻ—ā§āĻ¯āĻžāĻœā§‡āĻŸ āĻŦāĻž āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¯āĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĒā§āĻ°āĻŦāĻžāĻš āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ—āĻ¤ āĻāĻ• āĻĻāĻļāĻ•ā§‡,āĻ†āĻŽāĻ°āĻž āĻāĻœ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡āĻ° (āĻ¯ā§‡āĻŽāĻ¨,āĻŽā§‹āĻŦāĻžāĻ‡āĻ˛ āĻĢā§‹āĻ¨,āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻ˜āĻĄāĻŧāĻŋ āĻŦāĻž āĻ¸ā§‡āĻ¨ā§āĻ¸āĻ°) āĻ•ā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤ āĻ•āĻŋāĻ›ā§ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡,āĻ°āĻŋāĻ¯āĻŧā§‡āĻ˛-āĻŸāĻžāĻ‡āĻŽ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ°ā§āĻšāĻŋāĻ•āĻ° āĻ¨āĻ¯āĻŧ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ“āĨ¤ āĻ¯ā§‡āĻŽāĻ¨ āĻ¸ā§āĻŦ-āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ—āĻžāĻĄāĻŧāĻŋāĨ¤ āĻāĻ–āĻ¨ āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ• āĻāĻ•āĻŸāĻŋ āĻ—āĻžāĻĄāĻŧāĻŋāĻ° āĻ¸ā§‡āĻ¨ā§āĻ¸āĻ° āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ—āĻžāĻĄāĻŧāĻŋāĻ¤ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻ†āĻ—ā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻāĻŸāĻŋ āĻ¯āĻĨāĻžāĻ¯āĻĨāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ˛ā§‡āĻŸā§‡āĻ¨ā§āĻ¸āĻŋ āĻŽāĻžāĻ°āĻžāĻ¤ā§āĻŽāĻ• āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋāĻ“ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻšāĻ°āĻŽ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ,āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¨āĻž āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻ¤āĻžāĻ¤ā§āĻ•ā§āĻˇāĻŖāĻŋāĻ• āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ•ā§āĻˇāĻŽāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ‰āĻĒāĻ°ā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡,āĻāĻœ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨ā§‡ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ˛ā§‡,āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ†āĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ°āĻŋāĻ¯āĻŧā§‡āĻ˛-āĻŸāĻžāĻ‡āĻŽ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĄā§‡āĻŸāĻž āĻ‰ā§ŽāĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ: āĻāĻœ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĨ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋā§ŸāĻžāĻœāĻžāĻ¤ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋā§ŸāĻžāĻœāĻžāĻ¤ āĻĄā§‡āĻŸāĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡,āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻāĻŦāĻ‚ āĻ—āĻ¤āĻŋ āĻšāĻ˛ā§‹ āĻāĻœ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ diff --git a/content/bn/event-driven-architecture.md b/content/bn/event-driven-architecture.md new file mode 100644 index 0000000000..505b40d31f --- /dev/null +++ b/content/bn/event-driven-architecture.md @@ -0,0 +1,26 @@ +--- +title: āĻ˜āĻŸāĻ¨āĻž-āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ (Event-Driven Architecture) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["architecture", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ˜āĻŸāĻ¨āĻž āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻ¯āĻž āĻ˜āĻŸāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•ā§‡ āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ°āĻžāĻ‡āĻĄ-āĻļā§‡āĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§‡ āĻ°āĻžāĻ‡āĻĄā§‡āĻ° āĻĒā§āĻ°āĻļāĻ‚āĻ¸āĻž āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°ā§‡ā§ˇ +āĻāĻ‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻŸāĻŋ āĻāĻŽāĻ¨ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰ā§ŽāĻ¸ āĻĨā§‡āĻ•ā§‡ (āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ°āĻžāĻ‡āĻĄā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡) āĻĨā§‡āĻ•ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ°āĻŋāĻ¸āĻŋāĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ (āĻ†āĻļā§‡āĻĒāĻžāĻļā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ) āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ°ā§āĻŸ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¤āĻĨā§āĻ¯ āĻ¯āĻ¤ āĻŦā§‡āĻļāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻŽā§āĻŽāĻ¤ āĻšāĻ¯āĻŧ, āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ [āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸](/bn/service/) āĻ¯āĻž āĻ˜āĻŸāĻ¨āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡, āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ‰āĻĒāĻžāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¤āĻ¤āĻŦā§‡āĻļāĻŋ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĨ¤ +āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ¯āĻĨāĻžāĻ¯āĻĨāĻ­āĻžāĻŦā§‡ āĻ°ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻŦāĻž āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻŦāĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ—ā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻŸāĻŋ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§‹āĻ¨ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ¨ā§‡āĻ‡āĨ¤ +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻ¸āĻžāĻœāĻžāĻ¨ā§‹ āĻ†āĻ°āĻ“ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡ā§ˇ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ˜āĻŸāĻ¨āĻž-āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ¯āĻŧ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ (āĻ¯ā§‡āĻŽāĻ¨, Kafka)āĨ¤ +āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻ¯ā§‹āĻœāĻ• (āĻ‰ā§ŽāĻ¸) āĻāĻŦāĻ‚ āĻ­ā§‹āĻ•ā§āĻ¤āĻž (āĻ—ā§āĻ°āĻšā§€āĻ¤āĻž) āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ¯āĻŧ āĻ˜āĻŸāĻ¨āĻž āĻšāĻžāĻŦ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŦāĻžāĻšā§‡āĻ° āĻ¨āĻŋāĻļā§āĻšāĻ¯āĻŧāĻ¤āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻāĻ‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻĻā§āĻŦā§ˆāĻ¤ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¯ā§‹āĻœāĻ• āĻĨā§‡āĻ•ā§‡ āĻ­ā§‹āĻ•ā§āĻ¤āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤ +āĻĒā§āĻ°āĻ¯ā§‹āĻœāĻ• āĻ…āĻ­āĻŋāĻŽā§āĻ–ā§€ āĻ˜āĻŸāĻ¨āĻž āĻ¨ā§‡āĻŦā§‡āĻ¨, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ HTTP āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ˜āĻŸāĻ¨āĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻ°ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/event-streaming.md b/content/bn/event-streaming.md new file mode 100644 index 0000000000..861fc9689f --- /dev/null +++ b/content/bn/event-streaming.md @@ -0,0 +1,31 @@ +--- +title: āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻŦāĻžāĻš ( Event Streaming ) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "networking", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻ¤āĻžāĻ°āĻž āĻ•ā§€ āĻ•āĻ°āĻ›ā§‡ āĻ¤āĻž āĻ…āĻŦāĻŋāĻ°āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻ¯āĻž āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻšāĻŋāĻ¤ā§āĻ° āĻ¨āĻŋāĻ¨ā§ˇ +āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻŦāĻžāĻšāĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, NASDAQ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ āĻ¸ā§āĻŸāĻ• āĻāĻŦāĻ‚ āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻŽā§‚āĻ˛ā§āĻ¯ā§‡āĻ° āĻ†āĻĒāĻĄā§‡āĻŸ āĻĒāĻžāĻ¯āĻŧāĨ¤ +āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻ¸ā§āĻŸāĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸ā§‡āĻŸ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§‡āĻ‡ āĻ¤āĻĨā§āĻ¯āĻŸāĻŋ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨-āĻ¸āĻŽā§Ÿā§‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ‡āĻŦā§‡āĻ¨āĨ¤ +āĻĢāĻžāĻ‡āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻ•āĻŸāĻŋ [API](/bn/application-programming-interface/) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž NASDAQ āĻĨā§‡āĻ•ā§‡ āĻŸā§‡āĻ¨ā§‡ āĻ¨ā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ (āĻŦāĻž āĻ˜āĻŸāĻ¨āĻž) āĻĒāĻžāĻ āĻžāĻ¯āĻŧ (āĻŦāĻž āĻĒā§āĻ°āĻŦāĻžāĻš) āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻ¯āĻžāĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ¤āĻž āĻ¨ā§‡āĻ¯āĻŧāĨ¤ +āĻ¯ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻšā§āĻ›ā§‡ āĻ¸ā§‡āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ¸ā§‡āĻ‡ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ (āĻ¸ā§āĻŸāĻ•ā§‡āĻ° āĻĻāĻžāĻŽ) āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¸ā§‡āĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻŦāĻžāĻšāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻĢāĻžāĻ‡āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻ•āĻ• TCP āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ–ā§āĻŦāĻ‡ āĻ…āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻŦā§‡ āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšā§Ÿā§ˇ +āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ•ā§ƒāĻĒāĻ•ā§āĻˇā§‡ āĻ¯āĻ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻ¸āĻŽā§āĻŽāĻ¤ āĻšā§Ÿā§‡ āĻ‰āĻ ā§‡, āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ•ā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž āĻ…āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧā§‡āĨ¤ +āĻāĻ•āĻŦāĻžāĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ–ā§‹āĻ˛āĻž āĻāĻŦāĻ‚ āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛ā§‹āĻ•ā§‡ āĻĒā§āĻ°āĻŦāĻžāĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻ¸āĻŽā§Ÿā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĻāĻ°ā§āĻļāĨ¤ +āĻ‰ā§ŽāĻĒāĻ¨ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĻā§āĻ°ā§āĻ¤āĻ—āĻ¤āĻŋāĻ¤ā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻšā§āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒā§āĻ°āĻŦāĻžāĻšāĻŋāĻ¤ āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ° āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨-āĻ¸āĻŽā§Ÿā§‡ āĻ¸ā§‡āĻ‡ āĻ¤āĻĨā§āĻ¯ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ˜āĻŸāĻ¨āĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¤āĻĨā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰ā§ŽāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ°āĻŋāĻ¸āĻŋāĻ­āĻžāĻ°ā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˜āĻŸāĻ¨āĻž (āĻŦāĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒ) āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒā§āĻ°āĻŦāĻžāĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻ•āĻŋ āĻšāĻŦā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ‰āĻĻā§āĻŦāĻŋāĻ—ā§āĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ +āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ¯ā§‡āĻ•ā§‹āĻ¨āĻ“ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻĨāĻžāĻ•ā§‡āĨ¤ diff --git a/content/bn/firewall.md b/content/bn/firewall.md new file mode 100644 index 0000000000..d43839a012 --- /dev/null +++ b/content/bn/firewall.md @@ -0,0 +1,27 @@ +--- +title: āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ (Firewall) +status: Deprecated +draft: true +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°, āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻž āĻĻā§āĻŸāĻŋāĻ° āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¯ā§‡ āĻ•āĻžāĻ‰āĻ•ā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¤āĻžāĻ°āĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ†āĻšāĻ°āĻŖā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡, āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚āĨ¤ +āĻ¯ā§‡āĻŽāĻ¨, [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸(microservices)](/bn/microservices-architecture/) āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻ‚āĻ•āĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸ā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻ•ā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ¤ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ†āĻ°ā§āĻĨāĻŋāĻ• āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻˇāĻ¤āĻŋāĻ•āĻžāĻ°āĻ• āĻ•āĻ°ā§āĻŽā§€ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡ āĻŦāĻžāĻ§āĻž āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ•ā§āĻˇāĻ¤āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻĒā§‚āĻ°ā§āĻŦ-āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ +āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ…āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻŦāĻž āĻ¸āĻ¨ā§āĻĻā§‡āĻšāĻœāĻ¨āĻ• āĻ‰ā§ŽāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¸āĻž āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ +— āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ—ā§ƒāĻšā§€āĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤ +āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻ“āĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ§āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/function-as-a-service.md b/content/bn/function-as-a-service.md new file mode 100644 index 0000000000..e075838139 --- /dev/null +++ b/content/bn/function-as-a-service.md @@ -0,0 +1,39 @@ +--- +title: āĻĢāĻžāĻ‚āĻļāĻ¨-āĻāĻœāĻŧ-āĻ-āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (Function as a Service) (FaaS) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž +tags: ["infrastructure", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĢāĻžāĻ‚āĻļāĻ¨-āĻāĻœāĻŧ-āĻ-āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ +āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ (FaaS) āĻšāĻ˛ āĻāĻ• āĻĒā§āĻ°āĻ•āĻžāĻ° [āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ˛ā§‡āĻ¸](/bn/serverless/) [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) [āĻ¸āĻ°ā§āĻŦāĻŋāĻ¸](/bn/service/) +āĻ¯āĻž āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻ•ā§‹āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ +āĻœāĻŸāĻŋāĻ˛ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ¨āĻž āĻ°ā§‡āĻ–ā§‡ +āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸](/bn/microservices-architecture/) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤āĨ¤ +FaaS āĻāĻ° āĻ¸āĻžāĻĨā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¯āĻ–āĻ¨ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ•ā§‹āĻĄ āĻšāĻžāĻ˛ā§ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§‡āĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ•āĻŋāĻ›ā§ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ FaaS āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: [Amazon's AWS Lambda](https://aws.amazon.com/lambda/), +[Google Cloud Functions](https://cloud.google.com/functions/) āĻāĻŦāĻ‚ [Microsoft Azure Functions](https://azure.microsoft.com/en-us/services/functions/)āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ…āĻ¨-āĻĒā§āĻ°āĻžāĻ™ā§āĻ—āĻ¨ā§‡ āĻĻā§ƒāĻļā§āĻ¯āĻ•āĻ˛ā§āĻĒā§‡, āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ, āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻŦāĻŋāĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ +āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻāĻŦāĻ‚ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻ•ā§āĻ°āĻ¯āĻŧ, āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ†āĻĒāĻ—ā§āĻ°ā§‡āĻĄ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻœāĻ¨ IT āĻ•āĻ°ā§āĻŽā§€ āĻŦāĻž āĻ āĻŋāĻ•āĻžāĻĻāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤ +āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻ•āĻŽā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŽā§‡āĻŸāĻžāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¯āĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸āĻž āĻĻā§āĻ°ā§āĻ¤ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻ‡āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻžāĻŽ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ [Infrastructure-as-a-Service (IaaS)](/bn/infrastructure-as-a-service/) āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻŽāĻĄā§‡āĻ˛ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡, +āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻĒā§āĻ°āĻžāĻ•-āĻ•ā§āĻ°āĻ¯āĻŧ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‡āĻ‰āĻ¨āĻŋāĻŸ, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻĻāĻž-āĻ…āĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĻ¨āĨ¤ +āĻ‰āĻšā§āĻš āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° +āĻāĻŦāĻ‚ āĻ¯āĻ–āĻ¨ āĻ¸ā§‡āĻ‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ†āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻ–āĻ¨ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°ā§āĻ¨āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻ–āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +FaaS āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ [āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž](/bn/abstraction/) āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ•ā§‹āĻĄ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻ•ā§‹āĻĄ āĻ•āĻ°ā§‡āĨ¤ +FaaS āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ­āĻžāĻ°ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻŦā§‡, +āĻāĻŦāĻ‚ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ•ā§‡ [āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ˛ā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ](/bn/scalability/) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ +āĻŦāĻŋāĻ˛āĻŋāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ—āĻŖāĻ¨āĻž āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ•āĻĻā§‡āĻ° āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻž āĻ¯āĻ–āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ diff --git a/content/bn/gitops.md b/content/bn/gitops.md new file mode 100644 index 0000000000..f6adaee5f6 --- /dev/null +++ b/content/bn/gitops.md @@ -0,0 +1,18 @@ +--- +title: āĻ—āĻŋāĻŸāĻ…āĻĒāĻ¸ (GitOps) +status: Feedback Appreciated +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ—āĻŋāĻŸāĻ…āĻĒāĻ¸ (GitOps) āĻšāĻ˛ [āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻž āĻ¨ā§€āĻ¤āĻŋāĻ° (shared principles)](https://opengitops.dev/) āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¸āĻ°ā§āĻŦā§‹āĻ¤ā§āĻ¤āĻŽ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ, āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹āĻ¤ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻœā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ˜ā§‹āĻˇāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° (declared system) āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŦāĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ¨āĻ°ā§āĻŽāĻŋāĻ˛āĻ¨ (reconcile) āĻ•āĻ°āĻ¤ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ•āĻ°āĻŖā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻœā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻš (cohesive workflow) āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ—āĻŋāĻŸ-āĻāĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ•ā§‡ "āĻ¸āĻ¤ā§āĻ¯ā§‡āĻ° āĻāĻ•āĻ• āĻ‰ā§ŽāĻ¸" āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĄā§āĻ°āĻŋāĻĢā§āĻŸ, āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ° (failed deployments), āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°āĻž, āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž, āĻ…āĻĨāĻŦāĻž āĻ…āĻœāĻžāĻ¨āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ā§‡āĻ° (unknown development history) āĻŽāĻ¤ā§‹ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻŽā§āĻ–ā§‹āĻŽā§āĻ–āĻŋ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸāĻ…āĻĒāĻ¸ (GitOps) āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻ—ā§āĻ°āĻšāĻŖ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ‰āĻĒāĻļāĻŽ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ…āĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛ā§‹āĻ° āĻŽāĻ§ā§āĻ¯ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +GitOps āĻāĻ•āĻŸāĻŋ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻšā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻŽāĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ, āĻ¸ā§āĻŦāĻšā§āĻ›āĻ¤āĻž, āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž, āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĨ¤ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛ā§‹āĻœ āĻ˛ā§āĻĒā§‡ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛āĻžāĻ‡āĻ­ āĻ¸ā§āĻŸā§‡āĻŸāĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ•āĻžāĻ™ā§āĻ•ā§āĻˇāĻŋāĻ¤ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻ¸ā§āĻŸā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤ \ No newline at end of file diff --git a/content/bn/horizontal-scaling.md b/content/bn/horizontal-scaling.md new file mode 100644 index 0000000000..68adef9108 --- /dev/null +++ b/content/bn/horizontal-scaling.md @@ -0,0 +1,39 @@ +--- +title: āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ (Horizontal Scaling) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ•ā§ŒāĻļāĻ˛ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻ°āĻ“ [āĻ¨ā§‹āĻĄ](/bn/nodes/) āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡ (āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻŸāĻŋ [āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/vertical-scaling/) āĻ¨āĻžāĻŽā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤)āĨ¤ +āĻ§āĻ°āĻž āĻ¯āĻžāĻ•, āĻ†āĻŽāĻžāĻĻā§‡āĻ° 4GB RAM āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž 16GB RAM-āĻ¤ā§‡ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻšāĻžāĻ‡, +āĻāĻŸāĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ 16GB RAM āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ 4 x 4GB RAM āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ•āĻ°āĻžāĨ¤ + +āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤, āĻŦāĻž [āĻ¨ā§‹āĻĄ](/bn/nodes/), āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧ +āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡āĨ¤ +āĻ¸āĻšāĻœ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ˛ā§‹āĻĄ āĻ•āĻŽāĻžāĻ¨ā§‹ +āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ¸ā§‡āĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻŦā§‡āĻĄāĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, +āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ [āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž](/bn/scalability/) (āĻ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ°) āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻ†āĻŽāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ°āĻ“ āĻ¨ā§‹āĻĄ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ (āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ) +āĻŦāĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ (āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§‡)āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ°āĻ“ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¨ā§‹āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ 1,000āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, +āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¨ā§‹āĻĄ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 1,000 āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻŽā§‹āĻŸ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤ +āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ†āĻ°āĻ“ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ +āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¨ā§‹āĻĄā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡āĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +* [āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/vertical-scaling/) +* [āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/auto-scaling/) diff --git a/content/bn/hypervisor.md b/content/bn/hypervisor.md new file mode 100644 index 0000000000..575ce08cef --- /dev/null +++ b/content/bn/hypervisor.md @@ -0,0 +1,25 @@ +--- +title: āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° (Hypervisor) +status: Feedback Appreciated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["application", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° [āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (bare metal machine)](/bn/bare-metal-machine/) āĻ¸āĻŽā§āĻĒāĻĻ (āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰ (CPU), āĻ¸ā§āĻŽā§ƒāĻ¤āĻŋ (Memory), āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻœāĻžāĻ˛ (Network) āĻāĻŦāĻ‚ āĻ¸āĻžā§āĻšāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ (Storage)) āĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡ [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ (virtualization)](/bn/virtualization/) āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡, āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰āĻĒ-āĻ…āĻ‚āĻļā§‡ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšā§‹āĻ¸ā§āĻŸ (host) āĻ¤āĻžāĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸ā§€āĻŽāĻžāĻ¤ā§‡ āĻ¨āĻž āĻĒā§ŒāĻāĻ›āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (Virtual Machine (VM))](/bn/virtual-machine/) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° (operating system) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (applications) āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ…āĻ°ā§āĻœāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĻāĻ˛ āĻ¸āĻš āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ +āĻ¸āĻžāĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ•āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻļāĻ•ā§āĻ¤āĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻ†āĻ°ā§‹ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ•āĻ° āĻ“āĻ āĻžāĻ¨āĻžāĻŽāĻžāĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŽā§‡āĻŸāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§‡āĻ¯āĻŧāĻžāĻ° āĻŽā§‡āĻŸāĻžāĻ˛ā§‡ (bare metal) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +[āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ (cloud computing)](/bn/cloud-computing/) āĻāĻ° āĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻžāĻĒāĻŸā§‡ āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° (hypervisor) āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻšāĻžāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ° āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (virtual machine) āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° (hypervisor) āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ +āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (hardware) āĻ¸āĻŽā§āĻĒāĻĻāĻ—ā§āĻ˛āĻŋ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻāĻ•āĻ• āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ°ā§‡āĻ–ā§‡ VM-āĻ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ…āĻ¨ā§āĻ¯āĻĻā§‡āĻ° āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ VM-āĻ•ā§‡ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (operating system) āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ‡āĻĒāĻžāĻ°āĻ­āĻžāĻ‡āĻœāĻžāĻ° āĻšāĻ˛ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° (hardware) āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤āĻ¤āĻž, āĻāĻŸāĻŋ VM āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻœāĻŸāĻŋāĻ˛āĻ¤āĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻ¯āĻŧ, VMāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° (hardware) āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻ•āĻ°ā§‡, āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ (applications) āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°/āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ (servers/cloud) āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛ (autoscale) āĻ•āĻ°ā§‡āĨ¤ +āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡, āĻāĻ‡ [āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻŸā§‡āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻŸ (multi-tenant)](/bn/multi-tenant/) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ (computing) āĻ–āĻ°āĻš āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ diff --git a/content/bn/idempotence.md b/content/bn/idempotence.md new file mode 100644 index 0000000000..5ff8b33d23 --- /dev/null +++ b/content/bn/idempotence.md @@ -0,0 +1,10 @@ +--- +title: āĻ…āĻ•ā§āĻˇāĻŽāĻ¤āĻž (Idempotence) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["property", "", ""] +--- + +āĻ—āĻŖāĻŋāĻ¤ āĻŦāĻž āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻŋāĻœā§āĻžāĻžāĻ¨ā§‡, āĻ…āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•ā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āĻ‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, +āĻāĻŸāĻŋ āĻ¯āĻ¤āĻŦāĻžāĻ° āĻ•āĻ°āĻž āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨āĨ¤ +āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ• āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ‡ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ•ā§āĻˇāĻŽ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒāĻ•ā§‡ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻžāĨ¤ diff --git a/content/bn/immutable-infrastructure.md b/content/bn/immutable-infrastructure.md new file mode 100644 index 0000000000..fda630e401 --- /dev/null +++ b/content/bn/immutable-infrastructure.md @@ -0,0 +1,25 @@ +--- +title: āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ (Immutable Infrastructure) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["infrastructure", "property", ""] +--- + +āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦāĻ˛āĻ¤ā§‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦā§‹āĻāĻžāĻ¯āĻŧ +([āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨](/bn/virtual-machine/), [āĻ§āĻžāĻ°āĻ•](/bn/container/), āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¯āĻ¨ā§āĻ¤ā§āĻ°āĻĒāĻžāĻ¤āĻŋ) +āĻ¯ā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻž. +āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻž āĻ…āĻ¨āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻŸ āĻ•āĻ°ā§‡ āĻŦāĻž +āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻŦā§‡ āĻ¨āĻžāĨ¤ +āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ +āĻ•āĻžāĻ°āĻŖ āĻĒāĻžāĻ¤ā§āĻ°ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ +āĻ§āĻžāĻ°āĻ•āĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻŦāĻž āĻāĻ° āĻšāĻŋāĻ¤ā§āĻ° āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ§āĻžāĻ°āĻ•āĻŸāĻŋāĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĨ¤ + +āĻ…āĻ¨āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻŦāĻž āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°ā§‡, +āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻā§āĻāĻ•āĻŋ āĻļāĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§‹ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ +āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ¸ā§‹āĻœāĻž āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ +āĻ•āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•āĻ°āĻž āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ +āĻ¸āĻ°ā§āĻŦā§‹āĻĒāĻ°āĻŋ, āĻ¤āĻžāĻ°āĻž āĻœāĻžāĻ¨ā§‡ āĻ¯ā§‡ āĻ•ā§‡āĻ‰ āĻ­ā§āĻ˛ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ¨āĻŋ āĻ¤āĻžāĻ°āĻž āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›ā§‡āĨ¤ +āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ [āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹](/bn/infrastructure-as-code/) āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻžāĻ¤ āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ +āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨ āĻ—āĻŋāĻŸ)āĨ¤ +āĻ…āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻāĻ‡ āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖāĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ¯āĻŧ +āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻ•āĻ¸āĻ‡ āĻ…āĻĄāĻŋāĻŸ āĻ˛āĻ— āĻ†āĻ›ā§‡āĨ¤ diff --git a/content/bn/infrastructure-as-a-service.md b/content/bn/infrastructure-as-a-service.md new file mode 100644 index 0000000000..306d6688aa --- /dev/null +++ b/content/bn/infrastructure-as-a-service.md @@ -0,0 +1,23 @@ +--- +title: āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ (Infrastructure as a service) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "", ""] +--- + + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ…āĻĨāĻŦāĻž IaaS āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ†āĻĻāĻ˛ āĻ¯ā§‡āĻŸāĻŋ Pay as you go āĻāĻ° āĻ†āĻĻāĻ˛ā§‡ [āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛](/bn/bare-metal-machine/) āĻ…āĻĨāĻŦāĻž [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœāĻĄ](/bn/virtualization/) āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ, āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻ° āĻŽāĻžāĻ˛āĻŋāĻ• āĻšāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨ āĻ¯āĻž āĻ—ā§āĻ°āĻžāĻšāĻ•āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻ•āĻžāĻ°āĻŋ ,āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ•āĻŋāĻ‚āĻŦāĻž āĻšāĻžāĻ‡āĻŦā§āĻ°āĻŋāĻĄ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĻ° āĻ¸āĻ‚āĻ•ā§āĻ˛āĻžāĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧā§‡ | āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 1% āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ | āĻ•āĻŽ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ‡ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻšāĻžāĻĒā§‡āĻ“ āĻ›āĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§‡āĻ‡ āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ…āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ | āĻ¸ā§āĻ•ā§‡āĻ˛ā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻāĻ‡ āĻ…āĻ­āĻžāĻŦā§‡āĻ° āĻĢāĻ˛ā§‡ āĻ–āĻ°āĻš āĻŦā§‡āĻĄāĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ…āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšāĻ¯āĻŧāĨ¤ + + + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +IaaS āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻāĻŦāĻ‚ āĻĄāĻžāĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¸ āĻ•ā§āĻ°āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻŦāĻž āĻšā§āĻ°āĻžāĻ¸ā§‡āĻ° āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ­āĻžāĻĄāĻŧāĻž āĻ¨āĻŋāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŦāĻĄāĻŧ āĻŽā§‚āĻ˛āĻ§āĻ¨ āĻŦā§āĻ¯āĻ¯āĻŧ, āĻŦāĻž [CAPEX](https://en.wikipedia.org/wiki/Capital_expenditure) āĻĒāĻŋāĻ›āĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +IaaS āĻ—āĻŦā§‡āĻˇāĻŖāĻž āĻ…āĻĨāĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ–āĻ°āĻš āĻ•āĻŽāĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¨ā§‡ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĻā§‡āĻ¯āĻŧ | āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ development āĻŦāĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻšāĻŽā§ŽāĻ•āĻžāĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻ¯āĻž Developer āĻĻā§‡āĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/infrastructure-as-code.md b/content/bn/infrastructure-as-code.md new file mode 100644 index 0000000000..241a957ace --- /dev/null +++ b/content/bn/infrastructure-as-code.md @@ -0,0 +1,18 @@ +--- +title: āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ (Infrastructure as Code) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "methodology", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻšāĻ˛, āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻ¸āĻ‚āĻœā§āĻžāĻž āĻāĻ• āĻŦāĻž āĻāĻ•āĻ§āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻŽāĻĄā§‡āĻ˛āĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŽāĻžāĻ¨āĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻŋāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸ā§‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¨āĻŋāĻˇā§āĻĒāĻ¤ā§āĻ¤āĻŋāĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻĒā§āĻ¨āĻ°ā§ā§ŽāĻĒāĻžāĻĻāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŽāĻžāĻ¨ā§āĻˇā§‡āĻ° āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ‰āĻĒāĻžāĻ¯āĻŧ [āĻ¸ā§āĻ•ā§‡āĻ˛](/bn/scalability/) āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻŽāĻžāĻ¨āĻŦāĻŋāĻ• āĻ¨āĻœāĻ°āĻĻāĻžāĻ°āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ°](/bn/cloud-native-apps/) āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻŽāĻžāĻ¨āĻŦāĻŋāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ¸ā§€āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ­ā§āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ¯ā§‡āĻŽāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°, āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻžāĻŦāĻ¨ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ¤ā§āĻ¯ā§‡āĻ° āĻāĻ•āĻ• āĻ‰ā§ŽāĻ¸ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ [CI](/bn/continuous-integration/) āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ•ā§ŒāĻļāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/kubernetes.md b/content/bn/kubernetes.md new file mode 100644 index 0000000000..415d3e7c38 --- /dev/null +++ b/content/bn/kubernetes.md @@ -0,0 +1,25 @@ +--- +title: āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ (Kubernetes) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["infrastructure", "fundamental", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ (Kubernetes), āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ K8s āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨-āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ…āĻ°ā§āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻŸāĻ° āĻ¯āĻž āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ¤ā§‡ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ (containerized)](/bn/container/) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°āĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŽāĻ¤ā§‹, āĻ¯āĻž āĻ…āĻ‚āĻļ-āĻŦāĻŋāĻ­āĻžāĻ—āĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (Distributed System) āĻœā§āĻĄāĻŧā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ (āĻ āĻŋāĻ• āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒā§‡āĻ° OS āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡) ‍āĨ¤ + +āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻāĻ•āĻŸāĻŋ [āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ°](cluster.md) āĻ¨ā§‹āĻĄ āĻœā§āĻĄāĻŧā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§‚āĻšā§€ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋāĻ¤ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸāĻžāĻ•āĻšāĻžāĻ° āĻ•āĻ¨āĻ¸ā§āĻŸāĻžāĻ•ā§āĻŸāĻ¸ (infrustructure contructs)(āĻ¯ā§‡āĻŽāĻ¨- āĻĒā§āĻ°āĻŋāĻŽāĻŋāĻŸāĻŋāĻ­āĻ¸ (primitives)), āĻ•ā§‹āĻ¨ā§‹ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸā§‡āĻ¨ā§āĻ¸, āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° (Load Balancer), āĻĒāĻžāĻ°āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āĻŸ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ (Persistance Storage) āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻžāĻ¨āĻžāĻ¨ā§‹ āĻšā§ŸāĨ¤ + +āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ (Automation) āĻāĻŦāĻ‚ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻ¸āĻŋāĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ (Extensibility) āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ°āĻ•ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻ—āĻ āĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ“ āĻ˜ā§‹āĻˇāĻŖāĻžāĻŽā§‚āĻ˛āĻ•āĻ­āĻžāĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ‡āĻ•ā§‹āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻĄāĻžāĻ•ā§āĻŸ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸāĻ—ā§āĻ˛āĻŋ, āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ [āĻāĻĒāĻŋāĻ†āĻ‡ (API)](/bn/application-programming-interface/) āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‡āĻ‡ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻ¸āĻŋāĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ā§‡āĻ° āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨āĻ•ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ā§‡āĻ° āĻŸā§āĻ˛āĻ¸āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛āĻž āĻšā§Ÿ āĻ…āĻ­āĻŋāĻœā§āĻž āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ (Infrastructure automation) āĻāĻŦāĻ‚ āĻ˜ā§‹āĻˇāĻŖāĻžāĻŽā§‚āĻ˛āĻ• āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ (Declarative Configuration Management) āĻĻā§€āĻ°ā§āĻ˜āĻ•āĻžāĻ˛ āĻ§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ§āĻžāĻ°āĻŖāĻž, āĻāĻŦāĻ‚ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻž āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻžāĻ¯āĻŧ āĻāĻŸāĻŋ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻšāĻžāĻĒā§‡ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ā§‡āĻ° (compute resources) āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ¯āĻŧ āĻ•āĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻ‡āĻ¨ā§āĻœāĻŋāĻ¨āĻŋā§ŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻĒ āĻ…āĻ¨ā§āĻ­āĻŦ āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻĒā§‚āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ•āĻžāĻœā§‡āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ°āĻ‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚-āĻāĻ° (Cloud computing) āĻœāĻ¨āĻĒā§āĻ°ā§€ā§ŸāĻ¤āĻž āĻ•āĻ¨ā§āĻŸā§‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° (Containerization) āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ°āĻ•ā§‡ (Traditional infrastructure), āĻ…āĻŸā§‹āĻŽā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻ¸ā§āĻ¤ āĻ›āĻŋāĻ˛ āĻ¤āĻžāĻĻā§‡āĻ°āĻ‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ (Configuration) āĻāĻŦāĻ‚ āĻĄāĻŋāĻĒā§āĻ˛ā§ŸāĻŽā§‡āĻ¨ā§āĻŸ (Deployment) āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻĒāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡ āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻāĻ¸ āĻ•ā§‹āĻĄ (Traditional infrastructure as code) āĻŸā§āĻ˛āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻāĻ•āĻ‡ āĻ°āĻ•āĻŽ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸āĻ“ āĻ…āĻŸā§‹āĻŽā§‡āĻļāĻ¨ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŦāĻž āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĄā§āĻ°āĻŋāĻĢā§āĻŸā§‡ (Configuration Drift) āĻŦā§‡āĻļāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ā§€ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ˜ā§‹āĻˇāĻŖāĻžāĻŽā§‚āĻ˛āĻ•āĻ­āĻžāĻŦā§‡ (declaratively) āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻ°āĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧ āĻ¸ā§‡āĻŸāĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§‡āĻ¸ā§āĻŸ (Manifest) āĻĢāĻžāĻ‡āĻ˛ (āĻ¯ā§‡āĻŽāĻ¨ YAML) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡; āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ¨āĻŋāĻœā§‡ āĻĨā§‡āĻ•ā§‡āĻ‡ "āĻ•āĻŋāĻ­āĻžāĻŦā§‡" āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡ā§ŸāĨ¤ āĻāĻ° āĻĢāĻ˛ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ°Â āĻāĻ¸Â āĻ•ā§‹āĻĄā§‡āĻ° (Infrastructure as code) āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖāĨ¤ + +āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ¨āĻŋāĻœā§‡āĻ“ āĻ¨āĻŋāĻœā§‡āĻ° āĻ¨āĻŋāĻ°āĻžāĻŽāĻ¯āĻŧ (self-heal) āĻ•āĻ°ā§‡āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ¯ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°ā§‡āĻ° āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ•ā§‹āĻ¨ā§‹ āĻŦāĻŋāĻšā§āĻ¯ā§āĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ˛ā§‡, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ° (Kubernetes Controller) āĻ•āĻžāĻœā§‡ āĻ¨āĻžāĻŽā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻŋāĻ•ā§‡ āĻ āĻŋāĻ• āĻ•āĻ°ā§‡āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚ āĻāĻŸāĻŋ āĻ¯ā§‡ āĻ‡āĻ¨āĻĢā§āĻ°āĻžāĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° (Infrastructure) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¤āĻž āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§€āĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻ¯āĻžāĻ¤ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‡āĻ˛ā§‡āĨ¤ diff --git a/content/bn/load-balancer.md b/content/bn/load-balancer.md new file mode 100644 index 0000000000..ecc4a1f954 --- /dev/null +++ b/content/bn/load-balancer.md @@ -0,0 +1,18 @@ +--- +title: āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° (Load Balancer) +status: Feedback Appreciated +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "networking", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ˛ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ‡āĻ¨ā§āĻ¸āĻŸā§‡āĻ¨ā§āĻ¸ āĻāĻ° (instance) āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻ—āĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ (incoming requests) āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻāĻ•āĻŸāĻŋ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸](/bn/microservices-architecture/) āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¨āĻŋāĻ¨, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž (Horizontal Scaling)](/bn/horizontal-scaling/) āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§‡āĻ˛āĻĄ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ° āĻ¸āĻžāĻŽāĻ¨ā§‡ āĻŦāĻ¸ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨ā§āĻ¸āĻŸā§‡āĻ¨ā§āĻ¸āĻ‡ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻ¨āĻž āĻĒāĻžā§ŸāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻ¯ā§‹āĻ—ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ• āĻļ'āĻšāĻžāĻœāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻ†āĻ—āĻ¤ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻŦā§‡āĻ¨? āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻ†āĻ¸ā§‡ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ (dynamically) āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ†āĻ—āĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ āĻ…āĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛ā§‹ āĻ•ā§‡āĻŦāĻ˛ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŦāĻž āĻ•āĻŋāĻ›ā§āĻ‡ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻ–āĻ¨ āĻ•ā§‡āĻ‰ āĻāĻ•āĻžāĻ‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¸āĻŋāĻ‚āĻšāĻ­āĻžāĻ— āĻ¯ā§‡āĻ¨ āĻ¨āĻž āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻœā§āĻĄāĻŧā§‡ āĻ˛ā§‹āĻĄ āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ (āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻŦāĻž āĻļāĻ¤āĻžāĻ‚āĻļ-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ•)āĨ¤ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ‚ āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯āĨ¤ \ No newline at end of file diff --git a/content/bn/loosely-coupled-architecture.md b/content/bn/loosely-coupled-architecture.md new file mode 100644 index 0000000000..9663d06b53 --- /dev/null +++ b/content/bn/loosely-coupled-architecture.md @@ -0,0 +1,11 @@ +--- +title: āĻļāĻŋāĻĨāĻŋāĻ˛ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ (Loosely Coupled Architecture) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["fundamental", "architecture", "property"] +--- + +āĻļāĻŋāĻĨāĻŋāĻ˛ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻšāĻ˛ āĻ¸ā§‡āĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻļā§ˆāĻ˛ā§€ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧ ([ āĻĻā§ƒāĻĸāĻŧ āĻ¸āĻ‚āĻŦāĻĻā§āĻ§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻļā§ˆāĻ˛ā§€āĻ°](/bn/tightly-coupled-architectures/) āĻ āĻŋāĻ• āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ )| āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ•ā§‡ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°](/bn/microservices-architecture/) āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ +āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻŽāĻ¨āĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻ¤āĻž āĻ…āĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻ‡ āĻļā§ˆāĻ˛ā§€āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĻā§ƒāĻĸāĻŧ āĻ¸āĻ‚āĻŦāĻĻā§āĻ§ āĻļā§ˆāĻ˛ā§€ āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ…āĻ¨ā§‡āĻ• āĻ§ā§€āĻ° āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ†āĻ›ā§‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡āĨ¤ + +āĻļāĻŋāĻĨāĻŋāĻ˛ āĻļā§ˆāĻ˛ā§€ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ āĻ–ā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§ƒāĻĨāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻ¸āĻ™ā§āĻ—ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡| Application development āĻ…āĻ¨ā§‡āĻ• āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻŽāĻ°ā§āĻĨā§āĻ¯ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻ°ā§‡āĻ–ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ diff --git a/content/bn/managed-services.md b/content/bn/managed-services.md new file mode 100644 index 0000000000..cddf8faf52 --- /dev/null +++ b/content/bn/managed-services.md @@ -0,0 +1,24 @@ +--- +title: āĻŽā§āĻ¯āĻžāĻ¨āĻžāĻœā§āĻĄ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ (Managed services) +status: Deprecated +draft: true +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ¨āĻžāĻœā§āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ…āĻĢāĻžāĻ° āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ…āĻĢāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡āĻŽāĻ¨ Amazon-āĻāĻ° RDS āĻŦāĻž Datadog-āĻāĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžā§ˇ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻž āĻœāĻŸāĻŋāĻ˛, āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĻāĻŋāĻ• āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻž āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻŦāĻŋāĻļā§‡āĻˇāĻœā§āĻžāĻĻā§‡āĻ° āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ“āĻ¯āĻŧāĻž āĻ–ā§āĻŦ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŦāĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŽā§‚āĻ˛ā§āĻ¯ āĻ¨āĻ¯āĻŧāĨ¤ +āĻ¸āĻšāĻœā§‡āĻ‡ āĻ†āĻ‰āĻŸāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĻāĻ˛ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ­āĻžāĻ˛āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻŽā§āĻ¯āĻžāĻ¨āĻžāĻœā§āĻĄ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ–ā§āĻŦ āĻ•āĻŽ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻšā§‡āĻĄ āĻ¸āĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ā§ˇ +āĻ¤āĻžāĻ°āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°āĻ­āĻžāĻŦā§‡ āĻ†āĻ‰āĻŸāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽā§‚āĻ˛ āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĒāĻĄāĻŧā§‡ +āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤, āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ [API](/bn/application-programming-interface/) āĻšāĻžāĻ˛āĻŋāĻ¤ āĻ¸ā§€āĻŽāĻžāĻ¨āĻžāĨ¤ diff --git a/content/bn/microservices-architecture.md b/content/bn/microservices-architecture.md new file mode 100644 index 0000000000..9f88b50ee9 --- /dev/null +++ b/content/bn/microservices-architecture.md @@ -0,0 +1,20 @@ +--- +title: āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° (Microservices Architecture) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["architecture", "fundamental", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡ (Application Development) āĻāĻ•āĻŸāĻŋ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻĒāĻ¨ā§āĻĨāĻž āĻšāĻ˛ā§‹ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (Microservice), āĻ¯āĻž āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ (Cloud Native) āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ, āĻ¯ā§‡āĻŽāĻ¨ āĻ¨ā§‡āĻŸāĻĢā§āĻ˛āĻŋāĻ•ā§āĻ¸(netflix) āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ…ā§āĻ¯āĻžāĻĒ āĻāĻ° āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ†āĻ¸āĻ˛ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ° āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ°ā§‚āĻĒ, āĻ¸āĻŦāĻ—ā§āĻ˛āĻŋ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻšāĻ˛ā§‡āĻ›ā§‡āĨ¤ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ•ā§‹āĻ¨ā§‹ āĻ…ā§āĻ¯āĻžāĻĒ āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĒā§‡āĻœ āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° search, authenticate āĻāĻŦāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¤āĻž āĻ†āĻ¸āĻ˛ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ• āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻāĻ• āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¸āĻžāĻŽāĻ˛āĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡, āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŦāĻ˛āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ (Application Architecture Pattern) āĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ āĻ¯āĻž [āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (Monolithic Application)](/bn/monolithic_apps/) āĻāĻ° āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ¤ āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻšāĻ˛ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻœāĻžāĻšāĻŋāĻ° āĻ•āĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ¤ā§āĻ¤āĻ°āĨ¤ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻ‚āĻļāĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ†āĻ˛āĻžāĻĻāĻž āĻ­āĻžāĻŦā§‡ āĻŦāĻĄāĻŧ ([scaled](/bn/scalability/)) āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻĻā§‹āĻ•āĻžāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ•ā§āĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸ āĻ­āĻŋāĻ‰āĻ¸ āĻŦā§‡āĻļāĻŋ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻŦāĻŋāĻ•ā§āĻ°āĻŋāĻ° āĻĨā§‡āĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸ āĻ­āĻŋāĻ‰āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨āĻžāĻ˛āĻŋāĻŸāĻŋāĻ° āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ (running instance) āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡, āĻ†āĻ˛āĻžāĻĻāĻž āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦāĻž āĻ•ā§‹āĻĄ āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžā§āĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸ āĻ­āĻŋāĻ‰āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ­āĻžāĻŦā§‡ āĻŦāĻĄāĻŧā§‹ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛āĻž āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°ā§‹ āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋāĻ•ā§‡ āĻĄā§āĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ†āĻ°ā§‹ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻ¨ā§‡āĻ¨ā§āĻŸ āĻ¸āĻšāĻ•āĻžāĻ°ā§‡ āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻĻāĻ•ā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĨ¤ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛ā§‹āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻĒāĻŋāĻŸāĻĢāĻ˛ā§‡ (design pitfall) āĻĒāĻĄāĻŧāĻž āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§‹āĻĄ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¸ā§‡āĻ‡ āĻ•ā§‹āĻĄāĻŸāĻŋāĻ•ā§‡ āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻœā§‹āĻĄāĻŧāĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻž [(tightly coupled)](/bn/tightly_coupled_architectures/) āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ‰āĻĻā§āĻŦā§‡āĻ—ā§‡āĻ° āĻŦāĻŋāĻšā§āĻ›ā§‡āĻĻā§‡āĻ° āĻ¨ā§€āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ†āĻ°āĻ“ āĻ•āĻ āĻŋāĻ¨āĨ¤ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨āĻļā§€āĻ˛ (productive) āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻĒā§āĻ°ā§‹ āĻ•ā§‹āĻĄāĻŦā§‡āĻ¸ āĻŦā§‹āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž(functionality) āĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°ā§‡ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨, āĻ†āĻĒāĻĄā§‡āĻŸ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻŽāĻŋāĻļā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¸āĻšāĻœāĨ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĻāĻ˛āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§ƒāĻšāĻ¤ā§āĻ¤āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ›ā§‹āĻŸ āĻ…āĻ‚āĻļā§‡ āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ° āĻŦāĻžāĻ•āĻŋ āĻ…āĻ‚āĻļāĻ•ā§‡ āĻ¨ā§‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŦāĻšā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ†āĻŦāĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ“āĻ­āĻžāĻ°āĻšā§‡āĻĄāĻ“ (operational overhead) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ - āĻ¯ā§‡ āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻŽāĻžāĻ¤ā§āĻ°āĻžāĻ° āĻ•ā§āĻ°āĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋāĻ¤ā§‡ āĻ¨āĻœāĻ° āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§āĨ¤ āĻ…āĻ¨ā§‡āĻ• [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻ—ā§‡āĻŸāĻŋāĻ­ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ°](/bn/cloud_native_tech/) āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯āĻ‡ āĻšāĻ˛ā§‹ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ¸āĻšāĻœ āĻ•āĻ°āĻžāĨ¤ + +--- diff --git a/content/bn/monolithic-apps.md b/content/bn/monolithic-apps.md new file mode 100644 index 0000000000..9178d8ae39 --- /dev/null +++ b/content/bn/monolithic-apps.md @@ -0,0 +1,23 @@ +--- +title: āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒ (Monolithic Apps) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ (deployable) āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻ°āĻ˛ āĻāĻŦāĻ‚ āĻ¸āĻšāĻœ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻāĻ•āĻŦāĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻœāĻŸāĻŋāĻ˛āĻ¤āĻžāĻ¯āĻŧ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒā§‡āĻ˛ā§‡, āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻ—ā§āĻ˛āĻŋ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻ•āĻ āĻŋāĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ•āĻ‡ āĻ•ā§‹āĻĄāĻŦā§‡āĻ¸ā§‡ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ°ā§‹āĻ§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻāĻŦāĻ‚ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻ¨ā§āĻ¤āĻƒāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ• āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻŋ āĻ¯ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡](/bn/microservices-architecture/) āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻšāĻ˛ā§‡ āĻāĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•ā§āĻˇāĻŽ āĻ“āĻ­āĻžāĻ°āĻšā§‡āĻĄ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ — āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸā§‡āĻ° āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡, āĻāĻ‡ āĻœāĻŸāĻŋāĻ˛āĻ¤āĻžāĻ•ā§‡ āĻ¸ā§āĻĨāĻ—āĻŋāĻ¤ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•ā§āĻŸāĻŸāĻŋ āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ¸ā§-āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛ā§ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻšāĻ¯āĻŧā§‡ āĻļā§€āĻ°ā§āĻŖ (lean) āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¯āĻ–āĻ¨ āĻŽāĻ¨ā§‹āĻ˛āĻŋāĻĨāĻŋāĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻŽā§‚āĻ˛ā§āĻ¯ āĻ¸āĻĢāĻ˛ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋāĻ•ā§‡ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻžāĻ° āĻ…āĻ•āĻžāĻ˛ āĻŦā§āĻ¯āĻ¯āĻŧ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ†āĻŦā§‡āĻĻāĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻŽā§‚āĻ˛ā§āĻ¯ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻ¸ā§‡āĻ‡ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻ¨āĻˇā§āĻŸ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ diff --git a/content/bn/multitenancy.md b/content/bn/multitenancy.md new file mode 100644 index 0000000000..a4dfbd152c --- /dev/null +++ b/content/bn/multitenancy.md @@ -0,0 +1,31 @@ +--- +title: āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (Multitenancy) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["architecture", "property", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) (āĻŦāĻž āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻŸā§‡āĻ¨ā§‡āĻ¨ā§āĻ¸āĻŋ (multi-tenancy)) āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨āĻ•ā§‡ (installation) āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻ¯āĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡ āĻšāĻ˛ āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ (application), āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€/āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§‹āĻˇā§āĻ ā§€ āĻ¯āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻŸā§‡ (data set) āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋ (software) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ‡ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻ°āĻž āĻĄā§‡āĻŸāĻž āĻ­āĻžāĻ— āĻ•āĻ°ā§‡ āĻ¨āĻž (āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻŽāĻžāĻ˛āĻŋāĻ•ā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ) āĻāĻŦāĻ‚ āĻāĻŽāĻ¨āĻ•āĻŋ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¸āĻšā§‡āĻ¤āĻ¨ āĻ¨āĻžāĻ“ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +āĻāĻ•āĻœāĻ¨ āĻ­āĻžāĻĄāĻŧāĻžāĻŸāĻŋāĻ¯āĻŧāĻž āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ˛āĻ—āĻ‡āĻ¨ āĻ†āĻ‡āĻĄāĻŋ (login ID) āĻ¸āĻš āĻāĻ•āĻœāĻ¨ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŽāĻ¤ā§‹ āĻ›ā§‹āĻŸ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ — āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§āĻ¨ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) — āĻŦāĻž āĻšāĻžāĻœāĻžāĻ° āĻšāĻžāĻœāĻžāĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ†āĻ‡āĻĄāĻŋ (login IDs) āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻŦāĻĄāĻŧ, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĨāĻžāĻ•āĻ˛ā§‡āĻ“ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻ†āĻ¨ā§āĻ¤āĻƒāĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤āĨ¤ +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ—ā§āĻ—āĻ˛ āĻŽā§‡āĻ‡āĻ˛ (Google Mail), āĻ—ā§āĻ—āĻ˛ āĻĄāĻ•ā§āĻ¸ (Google Docs), āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻĢā§āĻŸ āĻ…āĻĢāĻŋāĻ¸ ā§Šā§Ŧā§Ģ (Microsoft Office 365), āĻ¸ā§‡āĻ˛āĻ¸āĻĢā§‹āĻ°ā§āĻ¸ āĻ¸āĻŋāĻ†āĻ°āĻāĻŽ (Salesforce CRM) āĻāĻŦāĻ‚ āĻĄā§āĻ°āĻĒāĻŦāĻ•ā§āĻ¸ (Dropbox), āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻž āĻ†āĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻļā§āĻ°ā§‡āĻŖā§€āĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ + +## āĻāĻŸāĻŋ āĻ¯ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ + +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻ›āĻžāĻĄāĻŧāĻž, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ā§‡āĻ° (installation) āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻŦā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¯āĻŧ, āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ–āĻ°āĻšāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻĒāĻ°āĻŋāĻŦā§‡āĻļ (āĻ•āĻžāĻœā§‡āĻ° āĻĄā§‡āĻŸāĻž, āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ (settings), āĻĒā§āĻ°āĻŽāĻžāĻŖāĻĒāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻĻā§‡āĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡, āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡āĻ°āĻ‡ āĻ¨āĻŋāĻ°āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ (installation) āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻĻāĻŋāĻ“ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§‡, āĻ¤āĻžāĻ°āĻž āĻ¸āĻŦāĻžāĻ‡ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ (server) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŦāĻ‚ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ (interface) āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻāĻ•āĻŸāĻŋ [API](/bn/application-programming-interface/) (āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĒāĻĄāĻŧā§āĻ¨ [āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° (Client-Server Architecture)](/bn/client-server-architecture/)) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻŸāĻŋ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° (software) āĻĻā§āĻŦāĻžāĻ°āĻž, āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻ°āĻž āĻāĻ•ā§‡ āĻ…āĻĒāĻ°āĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻŦāĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ā§‡āĻ° (installation) āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽā§āĻĒāĻĻ āĻ­āĻžāĻ— āĻ•āĻ°ā§‡ āĻĻā§‡ā§ŸāĨ¤ +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ° āĻĒāĻ•ā§āĻˇ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻĒāĻĻā§‡āĻ° āĻ¸āĻžā§āĻšāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ­āĻžāĻĄāĻŧāĻžāĻŸā§‡āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° (software) āĻ–āĻ°āĻš āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡ (āĻ†āĻŦāĻžāĻ° āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§āĻ¨, āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• (web-based) āĻ‡-āĻŽā§‡āĻ‡āĻ˛ (e-mail) āĻŦāĻž āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• (document editors))āĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) SaaS āĻāĻ° āĻ¸āĻŽāĻžāĻ°ā§āĻĨāĻ• āĻ¨āĻ¯āĻŧ, āĻ¯āĻĻāĻŋāĻ“ SaaS-āĻāĻ° āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž (multitenancy) āĻšāĻ“āĻ¯āĻŧāĻž āĻ–ā§āĻŦāĻ‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻŦāĻ‚ āĻāĻŽāĻ¨āĻ•āĻŋ āĻŦāĻšā§ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻžāĻ° (multitenancy) āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ—ā§āĻ˛āĻŋ āĻāĻ° āĻŽā§‚āĻ˛ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋāĨ¤ diff --git a/content/bn/mutual-transport-layer-security.md b/content/bn/mutual-transport-layer-security.md new file mode 100644 index 0000000000..6558f471eb --- /dev/null +++ b/content/bn/mutual-transport-layer-security.md @@ -0,0 +1,23 @@ +--- +title: āĻĒāĻžāĻ°āĻ¸ā§āĻĒāĻ°āĻŋāĻ• āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž (Mutual Transport Layer Security) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["security", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻŽāĻŋāĻ‰āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŸāĻŋāĻāĻ˛āĻāĻ¸ (āĻāĻŽāĻŸāĻŋāĻāĻ˛āĻāĻ¸) āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¯āĻž āĻĻā§āĻŸāĻŋ [āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž](/bn/service/) āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻŽāĻŋāĻ‰āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŸāĻŋāĻāĻ˛āĻāĻ¸ āĻāĻ•āĻŸāĻŋ [āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸ āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ](/bn/transport-layer-security/) (āĻŸāĻŋāĻāĻ˛āĻāĻ¸) āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ•āĻŋāĻ¨ā§āĻ¤ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ‰āĻ­āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇāĻ•ā§‡āĻ‡ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +[āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž](/bn/microservices-architecture/) āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧāĻžāĻ‡āĻĢāĻžāĻ‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ¤ā§‹, āĻ¸ā§‡āĻ‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻ˛ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻšā§āĻ¯āĻžāĻ• āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻŽāĻŸāĻŋāĻāĻ˛āĻāĻ¸ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ¨ āĻ•ā§‹āĻ¨āĻ“ āĻ…āĻ¨āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻĒāĻ•ā§āĻˇ āĻŦā§ˆāĻ§ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻļā§āĻ¨āĻ¤ā§‡ āĻŦāĻž āĻ¨āĻ•āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻŽāĻŸāĻŋāĻāĻ˛āĻāĻ¸ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ‰āĻ­āĻ¯āĻŧ āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻ›āĻžā§œāĻžāĻ“ āĻ•ā§‹āĻ¨āĻ“ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦāĻž +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸ā§āĻ¤āĻ° āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋāĻ“ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹ āĻ˛āĻ—āĻ‡āĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻ¯ā§‡āĻŽāĻ¨ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ…āĻĢ āĻĨāĻŋāĻ‚āĻ¸ (IoT) āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĨ¤ +āĻ…āĻ¨-āĻĒāĻžāĻĨ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ, āĻ¸ā§āĻĒā§āĻĢāĻŋāĻ‚ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ, āĻ•ā§āĻ°ā§‡āĻĄā§‡āĻ¨āĻļāĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§āĻŸāĻžāĻĢāĻŋāĻ‚, āĻŦā§āĻ°ā§āĻŸ āĻĢā§‹āĻ°ā§āĻ¸ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻŽāĻ¤ā§‹ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ—ā§āĻ˛āĻŋ āĻāĻŽāĻŸāĻŋāĻāĻ˛āĻāĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ diff --git a/content/bn/nodes.md b/content/bn/nodes.md new file mode 100644 index 0000000000..026e3f665f --- /dev/null +++ b/content/bn/nodes.md @@ -0,0 +1,19 @@ +--- +title: āĻ¨ā§‹āĻĄ (Nodes) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "fundamental", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°, āĻ¯āĻž āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻž āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻšāĻ¯ā§‹āĻ—āĻŋāĻ¤āĻžā§Ÿ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ˛ā§āĻ¯āĻžāĻĒāĻŸāĻĒ, āĻŽā§‹āĻĄā§‡āĻŽ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸāĻžāĻ°āĻ•ā§‡ āĻ§āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛ā§‹ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧāĻžāĻ‡āĻĢāĻžāĻ‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻ¤ā§āĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻ•āĻ°ā§‡āĨ¤ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) āĻ, āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°, [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨](/bn/virtual-machine/) āĻ¨āĻžāĻŽā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻž āĻāĻ•āĻŸāĻŋ [āĻ•āĻ¨ā§āĻŸā§‡āĻ¨āĻžāĻ°](/bn/container/)āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻāĻŦāĻ‚ āĻ…āĻ¨ā§‡āĻ•ā§‡ āĻāĻŸāĻŋ āĻ•āĻ°ā§‡ āĻĨāĻžāĻ•ā§‡āĻ¨), āĻ¤āĻŦā§‡ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻā§āĻāĻ•āĻŋ āĻœāĻĄāĻŧāĻŋāĻ¤ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻā§āĻāĻ•āĻŋ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž [āĻŦāĻŋāĻ¤āĻ°āĻŖāĻ•ā§ƒāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/bn/distributed-apps/) āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ¨ā§‹āĻĄā§‡ āĻšāĻ˛ā§‡āĨ¤ āĻāĻ‡āĻ­āĻžāĻŦā§‡, āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ—ā§‹āĻˇā§āĻ ā§€āĻ°(Group) āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻĒ āĻŦāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ…āĻ°ā§āĻœāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ [āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°](/bn/cluster/) āĻŦāĻž āĻ—ā§‹āĻˇā§āĻ ā§€ āĻ—āĻ āĻ¨ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ (āĻŽā§‡āĻŽā§‹āĻ°āĻŋ, āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰, āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•) āĻĻā§‡āĻ¯āĻŧāĨ¤ [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­](/bn/cloud-native-tech/) āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻ‡āĻ‰āĻ¨āĻŋāĻŸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻ•āĻ• āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ§āĻ°āĻž āĻšā§Ÿ āĻ¨āĻž āĻ•āĻžāĻ°āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄāĻ•ā§‡ āĻāĻ•āĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ā§‹ āĻ¨ā§‹āĻĄ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ + diff --git a/content/bn/observability.md b/content/bn/observability.md new file mode 100644 index 0000000000..d513ea77be --- /dev/null +++ b/content/bn/observability.md @@ -0,0 +1,21 @@ +--- +title: āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Observability) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["property", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Observability) āĻšāĻ˛ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻĨāĻžāĻ•āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ‚āĻ•ā§‡āĻ¤āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ•āĻžāĻ°ā§āĻ¯āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻĻāĻ°ā§āĻļāĻŋāĻ¤āĻž (continuous actionable insights) āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŦā§āĻāĻ¤ā§‡ āĻāĻŦāĻ‚ (āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨āĻŽā§‚āĻ˛āĻ•) āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ¨āĻŋāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻ‚āĻ•ā§‡āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ¯ā§‡āĻŽāĻ¨ CPU āĻ¸āĻŽāĻ¯āĻŧ, āĻŽā§‡āĻŽāĻ°āĻŋ, āĻĄāĻŋāĻ¸ā§āĻ• āĻ¸ā§āĻĒā§‡āĻ¸ āĻāĻŦāĻ‚ āĻ‰āĻšā§āĻš-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻ¸āĻ‚āĻ•ā§‡āĻ¤, API āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽāĻ¯āĻŧāĻ¸āĻš, āĻ¤ā§āĻ°ā§āĻŸāĻŋ, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ¸āĻš āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ + +āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ¤āĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ–āĻ°āĻšā§‡āĻ° āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻĢā§‡āĻ˛ā§‡āĨ¤ +āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ…āĻ°ā§āĻĨāĻĒā§‚āĻ°ā§āĻŖ, āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻ¨ā§āĻ•ā§‚āĻ˛ āĻĢāĻ˛āĻžāĻĢāĻ˛ (āĻĻā§āĻ°ā§āĻ¤ āĻ˜āĻŸāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ° āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨āĻļā§€āĻ˛āĻ¤āĻž (developer productivity) āĻŦā§ƒāĻĻā§āĻ§āĻŋ) āĻāĻŦāĻ‚ āĻ•āĻŽ āĻĒāĻ°āĻŋāĻļā§āĻ°āĻŽ āĻāĻŦāĻ‚ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻŦā§āĻāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻļā§āĻ§ā§ āĻ…āĻ§āĻŋāĻ• āĻ¤āĻĨā§āĻ¯āĻ‡ āĻ†āĻ°āĻ“ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ†āĻĻāĻ¤ā§‡, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰ā§ŽāĻĒāĻŖā§āĻ¯ āĻ¤āĻĨā§āĻ¯ā§‡āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰ā§ŽāĻĒāĻŖā§āĻ¯ āĻ•ā§‹āĻ˛āĻžāĻšāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ†āĻ•āĻžāĻ™ā§āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¸āĻ‚āĻ•ā§‡āĻ¤ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ•āĻ āĻŋāĻ¨ āĻ•āĻ°ā§‡ āĻ¤ā§āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¸āĻ āĻŋāĻ• āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¸āĻ āĻŋāĻ• āĻ¸āĻŽā§Ÿā§‡ āĻ¸āĻ āĻŋāĻ• āĻĄāĻžāĻŸāĻž, āĻ¸āĻ āĻŋāĻ• āĻ­ā§‹āĻ•ā§āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ (āĻŽāĻžāĻ¨ā§āĻˇ āĻ…āĻĨāĻŦāĻž āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ…āĻ‚āĻļ)āĨ¤ \ No newline at end of file diff --git a/content/bn/platform-as-a-service.md b/content/bn/platform-as-a-service.md new file mode 100644 index 0000000000..eb804ec0f2 --- /dev/null +++ b/content/bn/platform-as-a-service.md @@ -0,0 +1,25 @@ +--- +title: āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ (Platform as a Service) +status: Deprecated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +draft: true +tags: ["fundamental", "platform", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ, āĻŦāĻž āĻĒāĻŋāĻāĻāĻāĻ¸, āĻšāĻ˛ā§‹ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻŸāĻŋāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽāĨ¤ +āĻšāĻŋāĻ°ā§‹āĻ•ā§, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĢāĻžāĻ‰āĻ¨ā§āĻĄā§āĻ°āĻŋ, āĻ…ā§āĻ¯āĻžāĻĒ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻĒāĻŋāĻāĻāĻāĻ¸ āĻ…āĻĢāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĨ¤ + +## āĻāĻŸāĻŋ āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¤ā§‡ āĻ¯ā§‡āĻŽāĻ¨ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž](/bn/microservices-architecture/) āĻ…āĻĨāĻŦāĻž [āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨](/bn/distributed-apps/), +āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĻāĻ˛ āĻāĻŦāĻ‚ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ•āĻžāĻœ āĻ…āĻĢāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ“āĻ¯āĻŧāĻž āĻĻāĻ°āĻ•āĻžāĻ°āĨ¤ +āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ•āĻžāĻœ, +[āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ°](/bn/service-discovery/) āĻāĻŦāĻ‚ āĻ˛ā§‹āĻĄ āĻ­āĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/scalability/) āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĨ¤ + +## āĻāĻŸāĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ PaaS āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĢā§āĻ¯āĻžāĻļāĻ¨ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦā§āĻāĻ¤ā§‡ āĻ“ āĻ•āĻŽ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻ˛ā§‡āĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ‡āĨ¤ +āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯āĻ•āĻ° āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ [āĻ…āĻŦāĻœāĻžāĻ°āĻ­ā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ](/bn/observability/) āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/policy-as-code.md b/content/bn/policy-as-code.md new file mode 100644 index 0000000000..d3d58fb44c --- /dev/null +++ b/content/bn/policy-as-code.md @@ -0,0 +1,27 @@ +--- +title: āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨ā§€āĻ¤āĻŋ (Policy as Code) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] +draft: +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨ā§€āĻ¤āĻŋ (PaC ) āĻšāĻ˛ā§‹ āĻŽā§‡āĻļāĻŋāĻ¨-āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ†āĻ•āĻžāĻ°ā§‡ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ‚āĻœā§āĻžāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĨ¤ +āĻāĻŸāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻŽāĻĄā§‡āĻ˛āĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¨āĻĨāĻŋāĻ¤ā§‡ āĻŽāĻžāĻ¨āĻŦ-āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ†āĻ•āĻžāĻ°ā§‡ āĻ¨āĻĨāĻŋāĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¤ā§‹āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ…āĻ¨ā§‡āĻ• āĻ¨ā§€āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŦāĻžāĻ§āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻšā§Ÿ, +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§€āĻ¤āĻŋ āĻ¯āĻž āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄā§‡ āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻ•āĻ°ā§‡, +āĻ¸ā§āĻĒāĻžāĻ°āĻ‡āĻ‰āĻœāĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋāĻ¸āĻš āĻ•āĻ¨ā§āĻŸā§‡āĻ¨āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻ•āĻ°ā§‡ āĻŦāĻž āĻ•āĻŋāĻ›ā§ āĻĄāĻžāĻŸāĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ­ā§‚-āĻ…āĻžā§āĻšāĻ˛ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻ•āĻ°ā§‡āĨ¤ +āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ•āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻĨāĻŋāĻ­ā§āĻ•ā§āĻ¤ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻļā§āĻ°āĻŽāĻ¸āĻžāĻ§ā§āĻ¯ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻĒā§āĻ°āĻŦāĻŖāĨ¤ +āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡ (āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ•āĻ°āĻžāĻ° āĻŽāĻ¤ā§‹ āĻ¨ā§Ÿ)āĨ¤ +āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨ā§€āĻ¤āĻŋāĻ° (PaC) āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ā§‹ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ—āĻŋāĻŸā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ—āĻŋāĻŸ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ˛āĻ— āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ• āĻšāĻ¯āĻŧ āĻ¯āĻ–āĻ¨ āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ +āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ†āĻ—ā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ diff --git a/content/bn/portability.md b/content/bn/portability.md new file mode 100644 index 0000000000..4af70292f0 --- /dev/null +++ b/content/bn/portability.md @@ -0,0 +1,14 @@ +--- +title: āĻŦāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Portability) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["fundamental", "property", ""] +--- + +āĻŦāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻāĻŦāĻ‚ āĻĒā§āĻ¨āĻƒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ°ā§‚āĻĒ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ "āĻ†āĻŸāĻ•ā§‡ āĻ¯āĻžāĻ“ā§ŸāĻž" āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ āĨ¤ +āĻ¯ā§‡āĻŽāĻ¨āĻƒ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦāĻž āĻ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ•ā§‹āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°ā§‹āĻ­āĻžāĻ‡āĻĄāĻžāĻ° āĨ¤ + +āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨ āĻāĻĄāĻŦā§āĻ˛āĻŋāĻ‰āĻāĻ¸ āĻŦāĻž āĻ˛āĻŋāĻ¨ā§āĻ¯āĻžāĻ•ā§āĻ¸)āĨ¤ +āĻ…āĻ¨ā§āĻ¯āĻĻāĻŋāĻ•ā§‡, āĻŦāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻŦāĻĄāĻŧ āĻ•ā§‹āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻšāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŦāĻ˛ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ–āĻžāĻĒ āĻ–āĻžāĻ‡āĻ¯āĻŧā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¸āĻ™ā§āĻ—āĻ¤ āĻ¸ā§€āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ +"āĻŦāĻšāĻ¨ āĻ•āĻ°āĻž (to port) " āĻļāĻŦā§āĻĻāĻ—ā§āĻšā§āĻ›ā§‡āĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ­āĻŋāĻ¯ā§‹āĻœāĻŋāĻ¤ āĻ•āĻ°āĻžāĨ¤ diff --git a/content/bn/reliability.md b/content/bn/reliability.md new file mode 100644 index 0000000000..5e047bfa63 --- /dev/null +++ b/content/bn/reliability.md @@ -0,0 +1,12 @@ +--- +title: āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Reliability) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["fundamental", "property", ""] +--- + + +āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡,āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ•āĻ¤ āĻ­āĻžāĻ˛ā§‹ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž ([distributed system](/bn/distributed-systems/)) āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ‚ āĻĒā§ƒāĻĨāĻ• āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ +āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻĻāĻŋāĻ•ā§‡, āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¸āĻšāĻœā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻĻā§‡āĻ° āĻāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦā§ŸāĻ‚ āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ…āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āĻ¯āĨ¤ +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° ([cloud native applications](/bn/cloud-native-apps/)) āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻ¸āĻšāĻœāĻžāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĨ¤ diff --git a/content/bn/scalability.md b/content/bn/scalability.md new file mode 100644 index 0000000000..305140379b --- /dev/null +++ b/content/bn/scalability.md @@ -0,0 +1,16 @@ +--- +title: āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž (Scalability) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["fundamental", "property", ""] +--- + +āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻŦāĻ˛āĻ¤ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āĻ¤āĻŸāĻž āĻ­āĻžāĻ˛ā§‹āĻ­āĻžāĻŦā§‡ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¯āĻž āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°ā§‡āĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻŋāĻ¸ ([Kubernetes](/bn/kubernetes/)) āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°([cluster](/bn/cluster/))āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ ([containerized](/bn/containerization/)) āĻ…ā§āĻ¯āĻžāĻĒā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻŦāĻž āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§‡āĻ‡ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•āĻžāĻ°āĻŖā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋāĻ¤ā§‡ āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ¨ā§‹āĻĄ ([nodes](/bn/nodes/)) āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ āĻĒā§āĻ¯āĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻ•āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻžāĻ¨ā§‡āĻ° āĻ­āĻžāĻ°āĻŦāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡? + + +āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ†āĻ°āĻ“ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ +āĻ†āĻŽāĻ°āĻž āĻĻā§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ•āĻĻāĻŋāĻ•ā§‡, āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ ([horizontal scaling](/bn/horizontal-scaling/)) āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ˛ā§‹āĻĄ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ¨ā§‹āĻĄ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ +āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§‡ ([vertical scaling](/bn/vertical-scaling/)) āĻĒā§ƒāĻĨāĻ• āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻž CPU āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡)āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻšāĻœā§‡āĻ‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŽā§‡āĻŸāĻžāĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽāĨ¤ diff --git a/content/bn/search.md b/content/bn/search.md new file mode 100644 index 0000000000..cb936b816f --- /dev/null +++ b/content/bn/search.md @@ -0,0 +1,4 @@ +--- +title: āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ +layout: āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ +--- diff --git a/content/bn/security-chaos-engineering.md b/content/bn/security-chaos-engineering.md new file mode 100644 index 0000000000..818858f73e --- /dev/null +++ b/content/bn/security-chaos-engineering.md @@ -0,0 +1,22 @@ +--- +title: āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ (Security Chaos Engineering) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["security", "methodology", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻ…āĻĨāĻŦāĻž SCE [āĻŦāĻŋāĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚](/bn/chaos-engineering/) āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻžāĻ¨ā§āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤āĻžāĨ¤ āĻ•ā§‡āĻžāĻ˛āĻžāĻšāĻ˛āĻĒā§‚āĻ°ā§āĻŖ āĻāĻŦāĻ‚ āĻĻā§‚āĻˇāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻšā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ†āĻ¸ā§āĻĨāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ SCE āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ¸āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ (proactive security experimentation)āĨ¤ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻ°āĻž āĻāĻŸāĻŋ āĻ…āĻ°ā§āĻœāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§ˆāĻœā§āĻžāĻžāĻ¨āĻŋāĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§āĻĨāĻŋāĻ°-āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ (steady-state), āĻšāĻžāĻ‡āĻĒā§‹āĻĨāĻŋāĻ¸āĻŋāĻ¸, āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖ, āĻļāĻŋāĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž (lesson learned) āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻļāĻŽāĻ¨ (mitigation) āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +[āĻ¸āĻžāĻ‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€](/bn/site-reliability-engineering/) (SREs) āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻšāĻ˛ āĻļā§‚āĻ¨ā§āĻ¯ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ…āĻ°ā§āĻœāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻ•āĻŽāĻžāĻ¨ā§‹āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡ āĻ¯āĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻŽā§āĻ­āĻŦ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻžāĨ¤ SRE āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻ°āĻž āĻĒā§āĻ°āĻžāĻ•-āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž (pre-failure) āĻāĻŦāĻ‚ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ˜āĻŸāĻ¨āĻž āĻ‰āĻ­āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡āĻ‡ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°ā§‡āĨ¤ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻ‡āĻ¸ā§āĻ¯ā§āĻ—ā§āĻ˛ā§‹ āĻĻā§āĻ°ā§āĻ¤āĻ¸āĻŽā§Ÿā§‡ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¤āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻŋāĻ‚, āĻ¯ā§‡āĻ—ā§āĻ˛ā§‹ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ•āĻ āĻŋāĻ¨āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻŋāĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚, [āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž](/bn/observability/) āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ•ā§‡ āĻ˜āĻŋāĻ°ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ "āĻ…āĻœāĻžāĻ¨āĻžāĻ° āĻ…āĻœāĻžāĻ¨āĻž" āĻ‰āĻ¨ā§āĻŽā§‹āĻšāĻ¨ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ¸ā§āĻĨāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž, āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻžāĨ¤ + +āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ§ā§€āĻ°ā§‡ āĻ§ā§€āĻ°ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹, āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻŸā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ‰āĻĻā§āĻŦā§‡āĻ—ā§‡āĻ° (security concerns) āĻœāĻ¨ā§āĻ¯ āĻŦā§‹āĻāĻžāĻĒāĻĄāĻŧāĻžāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ˜āĻŸāĻžāĻŦā§‡āĨ¤ SCE āĻ¸āĻŽāĻ—ā§āĻ° āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡, āĻ˛ā§āĻ•āĻžāĻ¨ā§‹ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ‰āĻ¨ā§āĻŽā§‹āĻšāĻ¨ āĻ•āĻ°ā§‡, āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŦā§āĻ˛āĻžāĻ‡āĻ¨ā§āĻĄ āĻ¸ā§āĻĒāĻŸāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‰āĻ¨ā§āĻŽā§‹āĻšāĻ¨ āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ (critical edge cases) āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°ā§‡ā§ˇ +āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ SREs, [DevOps](/bn/devops/) āĻāĻŦāĻ‚ [DevSecOps](/bn/devsecops/) āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ¸ā§āĻĨāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ¸āĻžāĻ‡āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡āĨ¤ \ No newline at end of file diff --git a/content/bn/self healing.md b/content/bn/self healing.md new file mode 100644 index 0000000000..90f1142271 --- /dev/null +++ b/content/bn/self healing.md @@ -0,0 +1,10 @@ +--- +title: āĻ¸ā§āĻŦ āĻ¨āĻŋāĻ°āĻžāĻŽāĻ¯āĻŧ(Self Healing) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["infrastructure", "property"] +--- + +āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦ-āĻ¨āĻŋāĻ°āĻžāĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ•ā§‹āĻ¨āĻ“ āĻŽāĻžāĻ¨ā§āĻˇā§‡āĻ° āĻšāĻ¸ā§āĻ¤āĻ•ā§āĻˇā§‡āĻĒ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ§āĻ°āĻŖā§‡āĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽāĨ¤ +āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ "āĻ…āĻ­āĻŋāĻ¸ā§ƒāĻ¤āĻŋ(Convergence)" āĻŦāĻž "āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ" āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĻā§‡āĻ–ā§‡ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻ°āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¯ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§āĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻĨāĻžāĻ•ā§‡ (āĻ¯ā§‡āĻŽāĻ¨, āĻ•āĻžāĻ™ā§āĻ–āĻŋāĻ¤(desired) āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨ā§‡āĻ° āĻ•āĻŽ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤(instances) āĻšāĻ˛āĻ›ā§‡), āĻāĻŸāĻŋ āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨āĻŽā§‚āĻ˛āĻ• āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ¨ā§‡āĻŦā§‡ (āĻ¯ā§‡āĻŽāĻ¨, āĻ¨āĻ¤ā§āĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž) | diff --git a/content/bn/serverless.md b/content/bn/serverless.md new file mode 100644 index 0000000000..3bf75fb628 --- /dev/null +++ b/content/bn/serverless.md @@ -0,0 +1,18 @@ +--- +Title: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ (Serverless) +Status: Completed +Category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["architecture", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ˛ā§‡āĻ¸ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻŽāĻĄā§‡āĻ˛ āĻ¯āĻž āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ¨āĻž āĻ•āĻ°ā§‡āĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻ–āĻ¨āĻ“ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻĨā§‡āĻ•ā§‡ [āĻŦāĻŋāĻŽā§‚āĻ°ā§āĻ¤](/bn/abstraction/)(abstracted) āĻĻā§‚āĻ°ā§‡āĨ¤ āĻāĻ•āĻœāĻ¨ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ (cloud provider) āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ° āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚, āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/scalability/) āĻāĻ° āĻ°ā§āĻŸāĻŋāĻ¨ āĻ•āĻžāĻœ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§‹āĻĄ āĻ•ā§‡āĻŦāĻ˛ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° (deployment) āĻœāĻ¨ā§āĻ¯ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°](/bn/container/) āĻ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ•āĻŦāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšā§Ÿā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° (demand) āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžā§Ÿ āĻāĻŦāĻ‚ āĻ•āĻŽāĻžā§ŸāĨ¤ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ āĻ…āĻĢāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ-āĻšāĻžāĻ˛āĻŋāĻ¤ (event-driven) āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻŽāĻĄā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻ¸ā§‡ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ–āĻ°āĻš āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ +āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ [Infrastructure-as-a-service (IaaS)](/bn/infrastructure-as-a-service/) [āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) āĻŽāĻĄā§‡āĻ˛ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡, +āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ§āĻžāĻ°āĻŖāĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‡āĻ‰āĻ¨āĻŋāĻŸ āĻ†āĻ—ā§‡ āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ°ā§Ÿ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž-āĻ…āĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•āĻŽā§āĻĒā§‹āĻ¨ā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻ•āĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛ā§‹ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŸāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ‰āĻšā§āĻš āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹ āĻāĻŦāĻ‚ āĻ¯āĻ–āĻ¨ āĻ¸ā§‡āĻ‡ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ†āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻšā§Ÿ āĻ¤āĻ–āĻ¨ āĻ¸ā§‡āĻŸāĻž āĻ•āĻŽāĻžāĻ¨ā§‹āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻ–āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ…āĻ¨ā§āĻ¯āĻĻāĻŋāĻ•ā§‡, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒ āĻ•ā§‹āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ•āĻ°ā§‡, āĻ¤āĻ–āĻ¨ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻĻ (resources) āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻļā§‡āĻˇ āĻšāĻ˛ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ–āĻ°āĻš āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ˛ā§‡āĻ¸ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ°ā§āĻŸāĻŋāĻ¨ āĻāĻŦāĻ‚ āĻ›ā§‹āĻŸ āĻ•āĻžāĻœ āĻĨā§‡āĻ•ā§‡ āĻŽā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨, āĻ°ā§āĻŸāĻŋāĻ¨ āĻ•āĻžāĻœ āĻ¯ā§‡āĻŽāĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ¯āĻžāĻš, āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ, āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚, āĻ˛āĻ—āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŦāĻ‡ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¸ā§‡āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ° āĻ•āĻžāĻ›ā§‡ āĻ›ā§‡ā§œā§‡ āĻĻā§‡ā§ŸāĨ¤ \ No newline at end of file diff --git a/content/bn/service discovery.md b/content/bn/service discovery.md new file mode 100644 index 0000000000..8de75de1ec --- /dev/null +++ b/content/bn/service discovery.md @@ -0,0 +1,24 @@ +--- +title: āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋ (Service Discovery) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["networking", "", ""] +--- + + +## āĻāĻŸāĻž āĻ•āĻŋ? + +āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋ āĻšāĻ˛ āĻĒā§ƒāĻĨāĻ• āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤ āĻ–ā§‹āĻāĻœāĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨ā§‹āĻĄ āĻŦāĻž āĻļā§‡āĻˇ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° (endponint) āĻšāĻŋāĻ¸ā§‡āĻŦ āĻ°āĻžāĻ–ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻ—ā§āĻ˛āĻŋ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻāĻŦāĻ‚ āĻ¤āĻ°āĻ˛, āĻ¯āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻ¤āĻžāĻ°āĻž āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœāĻĄ ([containerized](/bn/containerization/)) āĻ…ā§āĻ¯āĻžāĻĒ(app) āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ¤āĻžāĻ° āĻœā§€āĻŦāĻĻā§āĻĻāĻļāĻžāĻ¯āĻŧ āĻāĻ•āĻžāĻ§āĻŋāĻ•āĻŦāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻŦāĻ‚ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ +āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻŸāĻŋ āĻ˜āĻŸāĻ˛ā§‡, āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĨāĻžāĻ•āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ…ā§āĻ¯āĻžāĻĒ āĻ¯ā§‡āĻŸāĻŋ āĻāĻ•ā§‡ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĻ° āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻĨāĻžāĻ•āĻŦā§‡ ā§ˇ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻšāĻŋāĻ¸ā§‡āĻŦ āĻ°āĻžāĻ–ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻ°āĻž āĻāĻ•ā§‡ āĻ…āĻĒāĻ°āĻ•ā§‡ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ā§ˇ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻšāĻ˛ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸-āĻāĻ° āĻŽāĻ¤ā§‹ āĻŸā§āĻ˛ āĻ¯āĻž āĻ•ā§‹āĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ + diff --git a/content/bn/service-mesh.md b/content/bn/service-mesh.md new file mode 100644 index 0000000000..91809070cf --- /dev/null +++ b/content/bn/service-mesh.md @@ -0,0 +1,21 @@ +--- +title: āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ (Service Mesh) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +--- + +## āĻāĻŸāĻž āĻ•āĻŋ +āĻāĻ•āĻŸāĻŋ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž](/bn/microservices-architecture/) āĻŦāĻŋāĻļā§āĻŦā§‡, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ [āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž](/bn/service/) āĻ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ +āĻ†āĻĒāĻ¨āĻžāĻ° āĻ“āĻ¯āĻŧāĻžāĻ‡āĻĢāĻžāĻ‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ¤ā§‹, āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻ—ā§āĻ˛āĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖāĻ­āĻžāĻŦā§‡ āĻ…āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯, āĻšā§āĻ¯āĻžāĻ•āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ‡ āĻ§ā§€āĻ°āĨ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ āĻāĻ‡ āĻ¨āĻ¤ā§āĻ¨ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• (āĻ¯ā§‡āĻŽāĻ¨, āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—) āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ [āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž](/bn/reliability/), [āĻ…āĻŦāĻœāĻžāĻ°āĻ­ā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ](/bn/observability/), āĻāĻŦāĻ‚ +āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻœā§āĻĄāĻŧā§‡ āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ +āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻšāĻ“ā§ŸāĻžāĻ° āĻĒāĻ°ā§‡, āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ°āĻž āĻāĻ–āĻ¨ āĻļāĻ¤ āĻļāĻ¤, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻšāĻžāĻœāĻžāĻ° āĻšāĻžāĻœāĻžāĻ° āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡āĻ¨, āĻ¯āĻžāĻĻā§‡āĻ° āĻ¸āĻ•āĻ˛ā§‡āĻ° āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ +āĻāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ā§‹ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸āĻžāĻŽāĻ¨ā§‡ āĻāĻŦāĻ‚ āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ¯āĻžāĻšā§āĻ›ā§‡āĨ¤ āĻ¸āĻ°ā§āĻŦā§‹āĻĒāĻ°āĻŋ, āĻĒā§ƒāĻĨāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛ā§‹āĻ° āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŦāĻ‚ +āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŸāĻŋāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŦāĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•ā§‡āĻ° āĻŦāĻŋāĻļāĻĻ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒā§ƒāĻĨāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ˛ā§‡, +āĻāĻ‡ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ˜āĻ°ā§āĻˇāĻŖ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻ•āĻžāĻļāĻ•ā§‡ āĻ§ā§€āĻ° āĻ•āĻ°āĻŦā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ +āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ•ā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž, āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻŽā§‡āĻļ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻāĻ° āĻ†āĻ—ā§‡, āĻ¸ā§‡āĻ‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻžāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻāĻ•āĻ• āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻāĻ•āĻ• āĻ­āĻžāĻŦā§‡ āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¤ā§‹, āĻ¯āĻž āĻŦāĻžāĻ— āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ‹āĻŖā§‡āĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ‰ā§ŽāĻ¸ āĻšāĻ¯āĻŧā§‡ āĻ“āĻ ā§‡āĨ¤ diff --git a/content/bn/service-proxy.md b/content/bn/service-proxy.md new file mode 100644 index 0000000000..b2edfdd7fa --- /dev/null +++ b/content/bn/service-proxy.md @@ -0,0 +1,22 @@ +--- +title: āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ (Service Proxy) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +--- + +## āĻāĻŸāĻž āĻ•āĻŋ? + +āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ ([service](/bn/service/)) āĻŦāĻž āĻ¸ā§‡āĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•āĻ•ā§‡ āĻŦāĻžāĻ§āĻž āĻĻā§‡āĻ¯āĻŧ, āĻāĻ¤ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§‡āĻ‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•āĻŸāĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ¤ā§‡ āĻ…āĻ—ā§āĻ°āĻ¸ā§āĻĨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻŽā§‚āĻ˛āĻ¤ āĻāĻ•āĻŸāĻŋ "āĻ—ā§‹-āĻŦāĻŋāĻŸā§āĻ‡āĻ¨ (go-between)" āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻāĻŸāĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ°āĻžāĻ–āĻ¤ā§‡ (āĻ‰āĻĒāĻ¨āĻžāĻŽ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•) āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻŦāĻž āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§āĻŦāĻŋāĻĻā§āĻ§(embedded)āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž "āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤" āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻāĻŸāĻŋ āĻāĻ–āĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ…āĻ¨ā§āĻŦāĻŋāĻĻā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻšāĻ˛ā§‡)āĨ¤ + +āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĻāĻžāĻ°ā§‹āĻ¯āĻŧāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž, āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ—ā§āĻ˛āĻŋ āĻ•ā§€ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ˜āĻŸāĻ›ā§‡ āĻ¤āĻžāĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ā§ˇ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻšāĻŦā§‡ āĻŦāĻž āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ…āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ + +āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡, āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡ (āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻŽāĻžāĻ¨āĻ­āĻžāĻŦā§‡ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻŦāĻž āĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ­ā§‡āĻ™ā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ°ā§āĻŸ āĻ•āĻ°āĻž), āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ¸āĻžāĻŽāĻ—ā§āĻ°ā§€ (āĻ¸āĻŽā§āĻĒāĻĻ āĻ–āĻ°āĻš āĻšā§āĻ°āĻžāĻ¸)āĨ¤ diff --git a/content/bn/service.md b/content/bn/service.md new file mode 100644 index 0000000000..e883a5ee09 --- /dev/null +++ b/content/bn/service.md @@ -0,0 +1,12 @@ +--- +title: āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž (Service) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["application", "fundamental", ""] +--- + +āĻĻāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻ‡āĻŸāĻŋ (IT)-āĻ¤ā§‡, āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…āĻ°ā§āĻĨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻ‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧ, āĻ†āĻŽāĻ°āĻž āĻ†āĻ°āĻ“ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻāĻ•āĻŸāĻŋāĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻŦ: āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž ā§ˇ +āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ“ āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ˛ā§‹āĻ•ā§‡āĻ° āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻ¤āĻžāĻŽāĻ¤ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ•āĻŸāĻŋ āĻ‰āĻšā§āĻš-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻāĻ•āĻ‡ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦāĨ¤ +āĻ…āĻ¨ā§āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ ([āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ā§‡āĻ¸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°](/bn/microservices-architecture/)) āĻ¸āĻ‚āĻœā§āĻžāĻž āĻĒā§œā§āĻ¨ āĨ¤ diff --git a/content/bn/shift-left.md b/content/bn/shift-left.md new file mode 100644 index 0000000000..160961b0c6 --- /dev/null +++ b/content/bn/shift-left.md @@ -0,0 +1,35 @@ +--- +title: āĻļāĻŋāĻĢāĻŸ āĻ˛ā§‡āĻĢāĻŸ (Shift Left) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ˛ā§‡āĻĢāĻŸ āĻļāĻŋāĻĢāĻŸā§‡ āĻ˛ā§‡āĻĢāĻŸ āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻŦā§‹āĻāĻžāĻ¯āĻŧ, +āĻ¸āĻĢāĻŸāĻ“ā§Ÿā§āĻ¯āĻžāĻ° āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°āĻ•ā§‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‹ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻŽ āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻ¨ā§‡ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ +āĻļāĻŋāĻĢāĻŸ āĻ˛ā§‡āĻĢāĻŸ āĻš'āĻ˛ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨, āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ + +āĻ¯āĻĻāĻŋāĻ“ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, +āĻļāĻŋāĻĢāĻŸ āĻ˛ā§‡āĻĢāĻŸ āĻāĻ–āĻ¨ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ [DevOps](/bn/devops/) āĻāĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĻāĻŋāĻ• āĻ¯ā§‡āĻŽāĻ¨ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, āĻŦāĻžāĻ— āĻāĻŦāĻ‚ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ āĻŋāĻ• āĻ•āĻ°āĻž āĻ†āĻ°āĻ“ āĻ•āĻ āĻŋāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ +āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻĻā§‡āĻ°āĻŋāĻ¤ā§‡ āĻŦāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻĒāĻ°ā§‡ āĻ†āĻŦāĻŋāĻˇā§āĻ•ā§ƒāĻ¤ āĻšāĻ¯āĻŧ, +āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ āĻ¯āĻĻāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļāĻŋāĻĢāĻŸ āĻ˛ā§‡āĻĢāĻŸ āĻŽāĻžāĻ¨āĻ¸āĻŋāĻ•āĻ¤āĻž āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§āĻŽā§‡ āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ° āĻœā§āĻĄāĻŧā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ“ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĻāĻ˛ āĻœā§āĻĄāĻŧā§‡ āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻ—ā§āĻŖāĻŽāĻžāĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ•āĻ°āĻŖ āĻĨā§‡āĻ•ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ +āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻĒāĻžāĻ˛āĻ¨ āĻ•āĻ°ā§‡āĨ¤ + +āĻāĻ›āĻžā§œāĻžāĻ“, āĻ˛ā§‡āĻĢāĻŸ āĻļāĻŋāĻĢāĻŸ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻœāĻ˛āĻĒā§āĻ°āĻĒāĻžāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ [āĻāĻœāĻžāĻ‡āĻ˛](/bn/agile-software-development/) āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻĻāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻ—ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻĒāĻ°ā§āĻŦā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡āĻ‡ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĨ¤ +āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻšāĻ•ā§āĻ° āĻœā§āĻĄāĻŧā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻ†āĻ—ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻŽāĻ¯āĻŧ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡āĨ¤ + +āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻāĻŦāĻ‚ āĻāĻ¸āĻāĻāĻāĻ¸(SaaS) āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ‡ āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ˛ā§‡āĻĢāĻŸ āĻĻāĻŋāĻ•ā§‡ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¨āĻŋāĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ›āĻžā§œāĻžāĻ“, āĻ˛ā§‡āĻĢāĻŸ āĻļāĻŋāĻĢāĻŸ āĻāĻ•āĻŸāĻŋ āĻĻāĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‚āĻ¸ā§āĻ•ā§ƒāĻ¤āĻŋāĻ• āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ diff --git a/content/bn/site-reliability-engineering.md b/content/bn/site-reliability-engineering.md new file mode 100644 index 0000000000..0d4dff1708 --- /dev/null +++ b/content/bn/site-reliability-engineering.md @@ -0,0 +1,29 @@ +--- +title: āĻ¸āĻžāĻ‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ (Site Reliability Engineering) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["methodology", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ¸āĻžāĻ‡āĻŸ āĻ°āĻŋāĻ˛āĻžāĻ‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻŦāĻž āĻāĻ¸āĻ†āĻ°āĻ‡ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻž āĻ¯āĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚āĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻĒāĻŖā§āĻ¯ āĻāĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ¸āĻžāĻ‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ +[āĻĄā§‡āĻ­āĻ…āĻĒāĻ¸](/bn/devops/) āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻĄā§‡āĻ­āĻ…āĻĒāĻ¸ āĻ¯āĻ–āĻ¨ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ•ā§‹āĻĄ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĻāĻŋāĻ•ā§‡ āĻŽāĻ¨ā§‹āĻ¨āĻŋāĻŦā§‡āĻļ āĻ•āĻ°ā§‡, +āĻāĻ¸āĻ†āĻ°āĻ‡ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ•ā§‹āĻĄ āĻ¯ā§‡āĻ¨ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ā§‡ + +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ [āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡](/bn/reliability/) āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, +āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ, āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž, āĻĄāĻŋāĻŦāĻžāĻ—āĻŋāĻ‚ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤ +āĻāĻ—ā§āĻ˛āĻŋ āĻ›āĻžāĻĄāĻŧāĻž, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻ°āĻž āĻ•ā§‡āĻŦāĻ˛ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻœāĻžāĻ¨āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻŦāĻ¨āĻžāĻŽ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ +- āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ•ā§‡āĻŦāĻ˛ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻāĻ¸āĻ†āĻ°āĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ–āĻ°āĻš, āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡ +āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡āĨ¤ +āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ +āĻ¯āĻ–āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ­ā§āĻ˛ āĻšāĻ¯āĻŧ, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻžāĻ‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻĻā§‡āĻ° āĻ•āĻ–āĻ¨, āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ āĻŋāĻ• āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻžāĻ˛ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ [āĻ¸ā§āĻ•ā§‡āĻ˛ā§‡āĻŦāĻ˛](/bn/scalability/) āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/software-as-a-service.md b/content/bn/software-as-a-service.md index c9c3ffd83a..a9c4241615 100644 --- a/content/bn/software-as-a-service.md +++ b/content/bn/software-as-a-service.md @@ -1,7 +1,8 @@ --- Title: āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻœ āĻ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸(Software as a Service)(SaaS) -Status: Completed +Status: Deprecated Category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["fundamental", "platform", ""] --- ## āĻāĻŸāĻž āĻ•āĻŋ @@ -10,7 +11,7 @@ Category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ ## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ -āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛ā§‹ āĻĒā§ƒāĻĨāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ: āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ āĻ—ā§āĻ°āĻžāĻšāĻ• āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (CRM) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦ-āĻļāĻ°ā§€āĻ°(on-premise) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ†āĻ‡āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻ•ā§āĻ°āĻ¯āĻŧ, āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛, āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž, āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ†āĻĒāĻ—ā§āĻ°ā§‡āĻĄ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¯āĻž āĻ†āĻ‡āĻŸāĻŋ āĻŸāĻŋāĻŽā§‡āĻ° āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ ā§ˇ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸, āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ†āĻĒ āĻĢā§āĻ°āĻ¨ā§āĻŸ āĻ–āĻ°āĻš āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ“ āĻ•āĻ āĻŋāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛](/scalability/) āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ‰āĻĒāĻ°ā§‡ āĻ“ āĻ¨āĻŋāĻšā§‡ āĻ¯āĻžāĻ¤āĻžāĻ¯āĻŧāĻžāĻ¤ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤āĻ­āĻžāĻŦā§‡, āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ—ā§āĻ˛ā§‹ āĻĒā§ƒāĻĨāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ: āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ āĻ—ā§āĻ°āĻžāĻšāĻ• āĻšāĻžāĻšāĻŋāĻĻāĻž āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž (CRM) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦ-āĻļāĻ°ā§€āĻ°(on-premise) āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŸāĻŋ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ†āĻ‡āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ¨āĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻ•ā§āĻ°āĻ¯āĻŧ, āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛, āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž, āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ†āĻĒāĻ—ā§āĻ°ā§‡āĻĄ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ¯āĻž āĻ†āĻ‡āĻŸāĻŋ āĻŸāĻŋāĻŽā§‡āĻ° āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ ā§ˇ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸, āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ†āĻĒ āĻĢā§āĻ°āĻ¨ā§āĻŸ āĻ–āĻ°āĻš āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻšāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ“ āĻ•āĻ āĻŋāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ [āĻ¸ā§āĻ•ā§‡āĻ˛(Scale)](/bn/scalability/) āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ‰āĻĒāĻ°ā§‡ āĻ“ āĻ¨āĻŋāĻšā§‡ āĻ¯āĻžāĻ¤āĻžāĻ¯āĻŧāĻžāĻ¤ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ ## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ diff --git a/content/bn/stateful-apps.md b/content/bn/stateful-apps.md new file mode 100644 index 0000000000..86447f8b59 --- /dev/null +++ b/content/bn/stateful-apps.md @@ -0,0 +1,21 @@ +--- +title: āĻ¸ā§āĻŸā§‡āĻŸāĻĢā§āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒāĻ¸ (Stateful Apps) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["fundamental", "application", " "] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻŸā§‡āĻŸāĻĢā§āĻ˛ (āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸) āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻ˛āĻŋ, +āĻ¸ā§āĻŸā§‡āĻŸ āĻŦāĻ˛āĻ¤ā§‡ āĻŽā§‚āĻ˛āĻ¤ āĻāĻŽāĻ¨ āĻĄā§‡āĻŸāĻžāĻ•ā§‡ āĻŦā§āĻāĻžāĻ‡ āĻ¯āĻž āĻ•ā§‹āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒ āĻ¸āĻšāĻ˛ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšā§ŸāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻļāĻĒ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ°ā§āĻŸāĻ•ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻ¨ āĻ•āĻ°ā§‡ āĻ°āĻžāĻ–ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§‡āĻŸāĻĢā§āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒāĨ¤ + + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻ¨āĻ¤ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨āĨ¤ āĻ¯ā§‡āĻŽāĻ¨ āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻŦā§āĻ¯āĻžāĻ‚āĻ•āĻŋāĻ‚ āĻ•āĻ°āĻ¤ā§‡, āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§€āĻ•āĻ°āĻŖ(authentication) āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡(āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ # 1), āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦāĻ¨ā§āĻ§ā§āĻ•ā§‡ āĻ…āĻ°ā§āĻĨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨(āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ # 2), āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§‡āĻˇā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ‡āĻŦā§‡āĻ¨(āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ # 3)āĨ¤ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋā§ŸāĻžāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡, āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒā§‡āĻ° āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒāĻ—ā§āĻ˛āĻŋ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻžāĻ‚āĻ•ā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•ā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸā§‡āĻ° āĻ¸ā§āĻŸā§‡āĻŸ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻœāĻ•āĻžāĻ˛ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ…āĻ§āĻŋāĻ•āĻžāĻ‚āĻļ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻ†āĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŸā§‡āĻŸāĻĢā§āĻ˛, āĻ•āĻžāĻ°āĻŖ āĻāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°āĻŋāĻ° āĻĒāĻ›āĻ¨ā§āĻĻāĻ¨ā§€ā§Ÿ āĻŦāĻŋāĻˇā§ŸāĻ—ā§āĻ˛ā§‹ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻœāĻŽāĻž āĻ•āĻ°ā§‡ āĻ°āĻžāĻ–ā§‡āĨ¤ + + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¸ā§āĻŸā§‡āĻŸāĻĢā§āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸ā§āĻŸā§‡āĻŸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°ā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻ‰āĻĒāĻžā§ŸāĻŸāĻŋ āĻšāĻ˛ āĻ¸ā§āĻŸā§‡āĻŸ āĻŽā§‡āĻŽā§‹āĻ°āĻŋāĻ¤ā§‡ āĻ°āĻžāĻ–āĻž āĻāĻŦāĻ‚ āĻ•ā§‹āĻĨāĻžāĻ“ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻ•āĻ°āĻžāĨ¤ āĻāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋā§ŸāĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ˛ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻŸā§‡āĻŸ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°āĻ¤ā§‡, āĻ¸ā§āĻŸā§‡āĻŸāĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡(āĻĄāĻŋāĻ¸ā§āĻ•ā§‡) āĻŦāĻž āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ diff --git a/content/bn/stateless-apps.md b/content/bn/stateless-apps.md new file mode 100644 index 0000000000..b0ebc0b3ae --- /dev/null +++ b/content/bn/stateless-apps.md @@ -0,0 +1,18 @@ +--- +title: āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒāĻ¸ (Stateless Apps) +status: Feedback Appreciated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["fundamental", "application", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸ā§‡āĻļāĻ¨ (āĻ¸ā§āĻŸā§‡āĻŸ) āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡ āĻ¨āĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĨāĻžāĻ•ā§‡ā§ˇ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸ā§‡āĻļāĻ¨ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯ā§‡āĻ¨ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ¸ā§‡āĻļāĻ¨ā§‡āĻ° āĻĄā§‡āĻŸāĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ¨āĻž āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¸ā§āĻŦāĻ˛ā§āĻĒāĻŽā§‡āĻ¯āĻŧāĻžāĻĻā§€ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŽā§āĻĻā§āĻ°āĻŖ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž, CDN (āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āĻŸ āĻĄā§‡āĻ˛āĻŋāĻ­āĻžāĻ°āĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•) āĻŦāĻž āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ā§ˇ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•ā§‡āĻ‰ āĻ¸āĻžāĻ°ā§āĻš āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ¨ā§āĻŸāĻžāĻ° āĻŦāĻžāĻŸāĻ¨ā§‡ āĻŸāĻŋāĻĒā§‡āĻ›ā§‡āĨ¤ āĻ•ā§‹āĻ¨ā§‹ āĻ•āĻžāĻ°āĻŖā§‡ āĻāĻ‡ āĻ¸āĻžāĻ°ā§āĻšāĻŋāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻŦāĻž āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻžāĻ°ā§āĻš āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ•āĻžāĻ°āĻŖ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ¸ā§‡āĻļāĻ¨ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛ā§‹ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻžāĻ° (resiliency) āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°ā§‡, āĻ•āĻžāĻ°āĻŖ āĻāĻ•āĻŸāĻŋ [āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°](/bn/cluster/) āĻœā§āĻĄāĻŧā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻĄ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯āĻĻāĻŋāĻ“ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ†āĻ¸ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ…āĻ˛ā§āĻĒ āĻŦāĻž āĻ•ā§‹āĻ¨ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¤āĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻŦā§‡āĨ¤ āĻ¯ā§‡āĻŽāĻ¨, āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•āĻ¤āĻž (resiliency), āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž (elasticity) āĻāĻŦāĻ‚ āĻ‰āĻšā§āĻš āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž (high availability)āĨ¤ āĻ¤āĻŦā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ†āĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦā§‡ [stateful](/bn/stateful-apps/), āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĒāĻ›āĻ¨ā§āĻĻ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻŽā§‹āĻŸāĻ•āĻĨāĻž, āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€ āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻšāĻ˛ āĻ•ā§‹āĻĄ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ¸āĻžāĻŽāĻ—ā§āĻ°ā§€, āĻ¯āĻž āĻāĻŸāĻŋāĻ¤ā§‡ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻāĻŸāĻžāĻ‡ āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĒāĻ¸, āĻĒāĻĄāĻŸāĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻžāĻ° āĻĒāĻ°ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻĄā§‡āĻŸāĻžāĻŦā§‡āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ•ā§‹āĻ¨āĻ“ āĻ˛ā§‡āĻ–āĻž āĻ¨ā§‡āĻ‡ āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨āĻ“ āĻĢāĻžāĻ‡āĻ˛ āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻ¨ā§‡āĻ‡ā§ˇ āĻ¸ā§āĻŸā§‡āĻŸāĻ˛ā§‡āĻ¸ [āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°](/bn/container/) āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ, āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ (persistent storage) āĻ­āĻ˛āĻŋāĻ‰āĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻŦā§āĻ¯āĻžāĻ• āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡āĻ“ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ \ No newline at end of file diff --git a/content/bn/tightly-coupled-architectures.md b/content/bn/tightly-coupled-architectures.md new file mode 100644 index 0000000000..40cfcb33ba --- /dev/null +++ b/content/bn/tightly-coupled-architectures.md @@ -0,0 +1,20 @@ +--- +title: āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ (Tightly Coupled Architectures) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["fundamental", "architecture", "property"] +--- + +āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻšāĻ˛ āĻ¸ā§‡āĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻļā§ˆāĻ˛ā§€ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻĒāĻ°āĻ¸ā§āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛ +([āĻļāĻŋāĻĨāĻŋāĻ˛ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯](/bn/loosely-coupled-architecture/)) āĻāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ āĻĻā§ƒāĻˇā§āĻŸāĻžāĻ¨ā§āĻ¤āĨ¤ +āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻ˛ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ā§‡ āĻļāĻŋāĻĨāĻŋāĻ˛ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻļā§ˆāĻ˛ā§€āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ, +āĻ¤āĻŦā§‡ āĻ•ā§āĻ¯āĻžāĻ¸āĻ•ā§‡āĻĄāĻŋāĻ‚ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻā§āĻāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ°ā§‡ āĻ¤ā§āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ +āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ°ā§‹āĻ˛āĻ†āĻ‰āĻŸāĻ—ā§āĻ˛āĻŋāĻ°āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻĻā§‡āĻ–āĻž āĻĻā§‡ā§Ÿ +āĻ¯āĻž āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°ā§‡āĻ° āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨āĻļā§€āĻ˛āĻ¤āĻž āĻ•āĻŽāĻŋā§Ÿā§‡ā§‡ āĻ†āĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +āĻļāĻ•ā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‡āĻžāĻœāĻŋāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻ•āĻŸāĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻŦāĻžāĻšā§€ āĻ‰āĻĒāĻžāĻ¯āĻŧāĨ¤ +āĻ¯āĻĻāĻŋāĻ“ [āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸](/bn/microservices-architecture/) āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§‡āĻ°āĻž āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ—āĻ¤ā§āĻ¯āĻž āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧ āĻ¤āĻŦā§‡ +āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡. +āĻ¤āĻžāĻ°āĻž āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ +āĻ…āĻ¨ā§‡āĻ•āĻŸāĻž [monolithic applications](/bn/monolithic-apps/) āĻāĻ° āĻŽāĻ¤āĻ‡ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻšāĻ•ā§āĻ°āĻ•ā§‡ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ diff --git a/content/bn/transport-layer-security.md b/content/bn/transport-layer-security.md new file mode 100644 index 0000000000..e67afff8a3 --- /dev/null +++ b/content/bn/transport-layer-security.md @@ -0,0 +1,29 @@ +--- +title: āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸ āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ (Transport Layer Security ) +status: Completed +category: āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ +tags: ["security", "networking", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒā§‹āĻ°ā§āĻŸ āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ (TLS) āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻĄā§‡āĻŸāĻžāĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĄā§‡āĻ˛āĻŋāĻ­āĻžāĻ°āĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡, +āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻĄā§‡āĻŸāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻĄāĻŧāĻžāĻ¨ā§‹āĨ¤ +āĻāĻ‡ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻŸāĻŋ āĻŽā§‡āĻ¸ā§‡āĻœāĻŋāĻ‚, āĻ‡-āĻŽā§‡āĻ‡āĻ˛ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻŦā§āĻ¯āĻžāĻĒāĻ•āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +TLS āĻ›āĻžāĻĄāĻŧāĻž, āĻ¸āĻ‚āĻŦā§‡āĻĻāĻ¨āĻļā§€āĻ˛ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§‡āĻŽāĻ¨ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻŋāĻ‚ āĻ…āĻ­ā§āĻ¯āĻžāĻ¸, āĻ‡-āĻŽā§‡āĻ‡āĻ˛ āĻšāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ°, āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻšā§āĻ¯āĻžāĻŸ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻ•āĻ˛ +āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻ¨ā§āĻ¯āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ +TLS āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ +āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻĄā§‡āĻŸāĻž āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +TLS āĻāĻ¨āĻ•ā§‹āĻĄāĻŋāĻ‚ āĻ•ā§ŒāĻļāĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ +TLS āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻ‚āĻ•āĻŋāĻ‚ āĻ¸āĻžāĻ‡āĻŸā§‡ā§ˇ +āĻāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¯ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻ›ā§‡ āĻ¤āĻž āĻ‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, +āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻžāĻ°āĻŖāĻžāĻŽā§‚āĻ˛āĻ• āĻ¸āĻžāĻ‡āĻŸā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻā§āĻāĻ•āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇāĻ—ā§āĻ˛āĻŋ TLS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻĄā§‡āĻŸāĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ•ā§āĻˇāĻŽ, +āĻ¯āĻž āĻ¸āĻ‚āĻŦā§‡āĻĻāĻ¨āĻļā§€āĻ˛ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§‡āĻŽāĻ¨ āĻ•ā§āĻ°ā§‡āĻĄāĻŋāĻŸ āĻ•āĻžāĻ°ā§āĻĄ āĻ¨āĻŽā§āĻŦāĻ°, āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ, āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ°āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/version-control.md b/content/bn/version-control.md new file mode 100644 index 0000000000..7c4e690f49 --- /dev/null +++ b/content/bn/version-control.md @@ -0,0 +1,30 @@ +--- +title: āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋā§ŸāĻ¨ā§āĻ¤ā§āĻ°āĻŖ (Version control) +status: Deprecated +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +draft: true +tags: ["methodology", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ‰āĻ¤ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ (āĻŦāĻž āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ) āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ¨āĻĨāĻŋāĻ¤ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ•āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨āĨ¤ +āĻāĻŸāĻŋ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¯āĻž āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸ā§‡āĻŸā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĒāĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŽāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, +āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻĨāĻŋ āĻŦāĻž āĻ•ā§‹āĻĄāĻŦā§‡āĻ¸ āĻŦā§āĻ¯āĻžāĻ• āĻ†āĻĒ āĻ•āĻ°āĻž, +āĻ“āĻ­āĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒāĻŋāĻ‚ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, āĻāĻŦāĻ‚ +āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ˛āĻ— āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĨ¤ +āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ• āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, +āĻ¤āĻžāĻ‡ āĻ•ā§‡ āĻ•ā§€ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ•āĻ–āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ•ā§‡āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¤āĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ +āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ, āĻ¯āĻĻāĻŋ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ, +āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻĨāĻžāĻ•ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻ°āĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡ āĨ¤ +āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ +āĻāĻŸāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻšāĻ¯ā§‹āĻ—āĻŋāĻ¤āĻžāĻ•ā§‡ āĻ¸āĻšāĻœ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ¤āĻžāĻĻā§‡āĻ° āĻ•ā§‹āĻĄ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ—āĻŋāĻŸā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ‰āĻĒāĻ° āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/vertical-scaling.md b/content/bn/vertical-scaling.md new file mode 100644 index 0000000000..9e1ed6103b --- /dev/null +++ b/content/bn/vertical-scaling.md @@ -0,0 +1,34 @@ +--- +title: āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ (Vertical Scaling) +status: Completed +category: āĻ§āĻžāĻ°āĻŖāĻž +tags: ["infrastructure", "", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚, āĻ¯āĻž "āĻ‰āĻĒāĻ° āĻāĻŦāĻ‚ āĻ¨āĻŋāĻšā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚" āĻ¨āĻžāĻŽā§‡āĻ“ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤, āĻāĻ•āĻŸāĻŋ āĻ•ā§ŒāĻļāĻ˛ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ +āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻŦāĻžāĻĄāĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡ āĻĒā§ƒāĻĨāĻ• [āĻ¨ā§‹āĻĄ](/bn/nodes/) āĻ CPU āĻāĻŦāĻ‚ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ§āĻ°āĻž āĻ¯āĻžāĻ•, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ 4GB RAM āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž 16GB RAM-āĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻšāĻžāĻ¨, +āĻāĻŸāĻŋāĻ•ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ 16GB RAM āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¸ā§āĻ¯ā§āĻ‡āĻš āĻ•āĻ°āĻžāĨ¤ +(āĻ…āĻ¨ā§āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/horizontal-scaling/) āĻĻā§‡āĻ–ā§āĻ¨āĨ¤) + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ¸ā§‡āĻ‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻŦā§‡āĻĄāĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, +āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ•ā§‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° (āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ°) āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ +āĻ†āĻŽāĻ°āĻž āĻšāĻ¯āĻŧ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ†āĻ°āĻ“ āĻ—āĻŖāĻ¨āĻž āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ (āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚) +āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ†āĻ°āĻ“ āĻ¨ā§‹āĻĄ ([āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/horizontal-scaling/))āĨ¤ +[āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯āĻ¤āĻž](/bn/scalability/) āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§‹āĻ—āĻŋāĻ¤āĻž, āĻĻāĻ•ā§āĻˇāĻ¤āĻž, āĻ–ā§āĻ¯āĻžāĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ—ā§āĻŖāĻŽāĻžāĻ¨ā§‡ āĻ…āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻ–ā§‡āĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¨āĻž āĻ•āĻ°ā§‡āĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸ā§āĻ•ā§‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ¯ā§‹āĻ—ā§āĻ¯ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ•ā§‹āĻĄ āĻ†āĻĒāĻĄā§‡āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ +āĻ‰āĻ˛ā§āĻ˛āĻŽā§āĻŦ āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°ā§‡ +āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž, āĻ…ā§āĻ¯āĻžāĻĒāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡ āĻ†āĻ°āĻ“ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ + +## āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻĒāĻĻ + +* [āĻ…āĻ¨ā§āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/horizontal-scaling/) +* [āĻ…āĻŸā§‹āĻ¸ā§āĻ•ā§‡āĻ˛āĻŋāĻ‚](/bn/auto-scaling/) diff --git a/content/bn/virtual-machine.md b/content/bn/virtual-machine.md new file mode 100644 index 0000000000..7e51bcf201 --- /dev/null +++ b/content/bn/virtual-machine.md @@ -0,0 +1,18 @@ +--- +title: āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (Virtual Machine) +status: Completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻž +tags: ["fundamental", "infrastructure", ""] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ (Virtual Machine) āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¯āĻžāĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡, āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻŦāĻžāĻ¨āĻžāĻ¤ā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° (Virtualization) āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛āĨ¤ āĻāĻ‡ āĻŦāĻŋāĻšā§āĻ›ā§‡āĻĻāĻŸāĻŋ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻž āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ§ā§āĻŦāĻ‚āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§‡ā§ŸāĨ¤ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ [āĻŦā§‡āĻ¯āĻŧāĻžāĻ°-āĻŽā§‡āĻŸāĻžāĻ˛ (bare-metal)](/bn/bare-metal-machine/) āĻŽā§‡āĻļāĻŋāĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻĻāĻ—ā§āĻ˛āĻŋ (Hardware resources) āĻ•āĻ¤āĻŸāĻž āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¤āĻž āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻ¸ā§€āĻŽāĻŋāĻ¤āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻ• āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸ā§‡āĻ‡ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛āĨ¤ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻŦāĻž āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ¯āĻĻāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ āĻšā§Ÿā§‡ āĻĒāĻ°ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ“ āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ āĻšā§Ÿā§‡ āĻ¯āĻžā§ŸāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻ“ā§ŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ• āĻŦāĻžāĻĻ āĻĻāĻŋāĻ˛ā§‡, āĻŦā§‡āĻ¯āĻŧāĻžāĻ°-āĻŽā§‡āĻŸāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšā§Ÿ: āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚ āĻŸāĻžāĻ‡āĻŽ (Provisioning time), āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ (Hardware utilization) āĻāĻŦāĻ‚ āĻ°ā§‡āĻœāĻŋāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋ (Resiliency)āĨ¤ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ•ā§‡āĻ¨āĻž āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻŦāĻž āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ¨āĻž āĻ•āĻ°ā§‡āĻ“, āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚ āĻŸāĻžāĻ‡āĻŽ āĻ¨āĻžāĻŸāĻ•ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻ“ā§ŸāĻžāĻ°ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻ•āĻž āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻĻāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžā§ŸāĨ¤ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻšāĻžāĻ°ā§āĻĄāĻ“ā§ŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻ¨āĻž āĻĨāĻžāĻ•āĻžā§Ÿ, āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ• (Resilient) āĻšā§ŸāĨ¤ āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ…āĻĢāĻ˛āĻžāĻ‡āĻ¨ āĻšāĻ¤ā§‡ āĻšā§Ÿ, āĻ¤āĻ–āĻ¨ āĻāĻ¤ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻŦāĻž āĻ•ā§‹āĻ¨ āĻĄāĻžāĻ‰āĻ¨āĻŸāĻžāĻ‡āĻŽ āĻĨāĻžāĻ•ā§‡āĻ¨āĻžāĨ¤ diff --git a/content/bn/virtualization.md b/content/bn/virtualization.md new file mode 100644 index 0000000000..523426e133 --- /dev/null +++ b/content/bn/virtualization.md @@ -0,0 +1,31 @@ +--- +title: āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ (Virtualization) +status: completed +category: āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ +tags: ["fundamental", "infrastructure", "methodology"] +--- + +## āĻāĻŸāĻž āĻ•āĻŋ + +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨, āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡, +āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, +āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ +āĻ¸ā§‡āĻ‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĄā§‡āĻĄāĻŋāĻ•ā§‡āĻŸā§‡āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸ āĻ°āĻŋāĻ¸ā§‹āĻ°ā§āĻ¸ (āĻ¸āĻŋāĻĒāĻŋāĻ‡āĻ‰, āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•) +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻŦāĻž āĻ­āĻŋāĻāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ +āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ [āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨](/bn/virtual-machine/) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŋ, āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ°-āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻ•āĻĨāĻž āĻŦāĻ˛āĻ›āĻŋāĨ¤ +āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¯āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ­āĻžāĻ— āĻ•āĻ°āĻ›ā§‡ā§ˇ +[āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻŋāĻ‚](/bn/cloud-computing/) āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛āĻŋāĻ¤āĨ¤ +āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ AWS āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ "āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°" āĻ˛āĻŋāĻœ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - āĻ¸ā§‡āĻ‡ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻŸāĻŋ āĻ†āĻ¸āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ VMāĨ¤ + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ + +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¸āĻš āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡ +āĻāĻ•āĻ‡ āĻĢāĻŋāĻœāĻŋāĻ•ā§āĻ¯āĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻ…ā§āĻ¯āĻžāĻĒ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ +āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻĨāĻžāĻ•āĻž āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧāĨ¤ + +## āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ + +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ…ā§āĻ¯āĻžāĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§‹āĻ¨ āĻ¸āĻšā§‡āĻ¤āĻ¨āĻ¤āĻž āĻ¨ā§‡āĻ‡ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ­āĻžāĻ— āĻ•āĻ°āĻ›ā§‡āĨ¤ +āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĄā§‡āĻŸāĻžāĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ "āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°" (āĻ“āĻ°āĻĢā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻāĻŽ) āĻ¸ā§āĻĒāĻŋāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ +āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻžāĻ¸ā§‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ +āĻ­āĻŋāĻāĻŽāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻĒā§‡āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°ā§‡āĨ¤ diff --git a/content/bn/zero-trust-architecture.md b/content/bn/zero-trust-architecture.md new file mode 100644 index 0000000000..7599e4fc8d --- /dev/null +++ b/content/bn/zero-trust-architecture.md @@ -0,0 +1,17 @@ +--- +title: āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° (Zero Trust Architecture) +status: Completed +category: āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž +tags: ["security", "", ""] +--- + +## āĻāĻŸāĻŋ āĻ•āĻŋ +āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ†āĻ‡āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĒāĻ¨ā§āĻĨāĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ 'āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ'(āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸) āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒāĻ¨ā§āĻĨāĻžāĻ° āĻŽā§‚āĻ˛ āĻ¨ā§€āĻ¤āĻŋ āĻšāĻ˛ "āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ¨ā§Ÿ,āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻž",āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻŦāĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ,āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ‚āĻļā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§‡āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡,āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ…āĻŦāĻžāĻ§ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ•āĻžāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĒāĻ°āĻŋāĻ§āĻŋāĻ° āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¸ā§€āĻŽāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĻāĻŋāĻ•ā§‡ āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ…āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĒāĻ°āĻŋāĻ§āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋ āĻ•ā§‹āĻ¨ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖ āĻĒāĻ°ā§āĻ¯āĻžā§Ÿ āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°ā§‡āĨ¤ + + +## āĻāĻŸāĻž āĻ¯ā§‡āĻ¸āĻŦ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¤ā§‡ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻĒāĻžāĻ¤ āĻ•āĻ°ā§‡ +āĻšāĻŋāĻ°āĻžāĻšāĻ°āĻŋāĻ¤ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ—ā§āĻ˛āĻŋ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻĒāĻ°āĻŋāĻ§āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•ā§‡,āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§‡,āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ†āĻ›ā§‡,āĻ¸ā§‡āĻšā§‡āĻ¤ā§ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§‡āĻ‡āĨ¤ āĻ…āĻŦāĻļā§āĻ¯,āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸(āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ) āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĨ¤ āĻāĻ–āĻ¨ āĻ˜āĻŸāĻ¨āĻžāĻšāĻ•ā§āĻ°ā§‡,āĻāĻ• āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻžā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€ "āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤" āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĒāĻ°āĻŋāĻ§āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•āĻžāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻ†āĻ•ā§āĻ°āĻŽāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻā§āĻāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻšā§Ÿā§‡ āĻĒā§œā§‡ āĻāĻŦāĻ‚ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€ āĻ¸āĻŽāĻ—ā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻœā§āĻĄāĻŧā§‡ āĻĒāĻžāĻ°ā§āĻļā§āĻŦā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡ (move laterally) āĻ¸āĻ•ā§āĻˇāĻŽ āĻšā§Ÿ,āĻāĻ‡āĻ¸āĻŦ āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡ āĻĨāĻžāĻ•āĻž āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸-āĻŽāĻžāĻ¤ā§āĻ°āĻž āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡ āĻĻā§‡āĻ“ā§ŸāĻž āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ā§‡āĻ° āĻ“āĻĒāĻ°āĨ¤ āĻāĻ•āĻŸāĻŋ āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡,āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸āĻ•ā§‡ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšā§Ÿ,āĻ¤āĻžāĻ‡ āĻ†āĻ•ā§āĻ°āĻŽāĻŖā§‡āĻ° āĻĒā§ƒāĻˇā§āĻ  āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžā§Ÿ āĻĢāĻ˛ā§‡,āĻāĻ•āĻœāĻ¨ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ†āĻ°ā§‹ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§‡ āĻ¯āĻžāĻ“ā§ŸāĻžāĻ° āĻ†āĻ—ā§‡ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖ āĻ•āĻ°āĻžāĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°āĻž āĻšā§ŸāĨ¤ + + +## āĻāĻŸāĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°ā§‡ +āĻœāĻŋāĻ°ā§‹ āĻŸā§āĻ°āĻžāĻ¸ā§āĻŸ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻĒāĻ¨ā§āĻĨāĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ āĻāĻŸāĻŋ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ āĻĒā§ƒāĻˇā§āĻ āĻ•ā§‡ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°ā§‡,āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻ°ā§āĻĒā§‹āĻ°ā§‡āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ…āĻĒāĻ¸āĻžāĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛ā§‡ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ—ā§‡āĻŸā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻāĻŦāĻ‚ āĻļāĻ•ā§āĻ¤āĻŋ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻĒāĻžā§Ÿ āĻ¯āĻž āĻāĻ•āĻœāĻ¨ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°āĻ¤ā§‡ āĻšā§Ÿ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻĒāĻžāĻ“ā§ŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ diff --git a/content/de/bare-metal-machine.md b/content/de/bare-metal-machine.md new file mode 100644 index 0000000000..f6a53e5f62 --- /dev/null +++ b/content/de/bare-metal-machine.md @@ -0,0 +1,23 @@ +--- +title: Bare Metal Machine +status: Completed +category: Technologie +--- + +## Was es ist + +Bare Metal beschreibt einen physischen Computer, der als Server verwendet wird und leistungsstarke Hardware besitzt. +DemgegenÃŧber stehen virtuelle Maschinen, die einen Großteil der Server ausmachen. + +## Welches Problem es lÃļst + +Bei Virtualisierungen kommt es zu kÃŧnstlicher VerzÃļgerung bei der Übersetzung von Betriebssystemanweisungen in Maschinencode. +Falls die Verarbeitung eines Workloads einen schnellen Zugriff auf Hardwareressourcen erfordert, kann Bare Metal die richtige LÃļsung sein. + +## Wie es das Problem lÃļst + +Durch die Bereitstellung der gesamten Ressourcen eines physischen Computers fÃŧr ein einziges Betriebssystem, kann die bestmÃļgliche Leistung erzielt werden. +Durch die Skalierbarkeit von [Cloud Native Apps](/cloud-native-apps/) kann eine große Anzahl von parallelen Events effizient verarbeitet werden. +Dies kann entweder durch horizontale oder vertikale Skalierung erreicht werden. +FÃŧr bestimmte Workloads kann eine vertikale Skalierung und/oder eine schnelle Reaktionszeit der physischen Hardware erforderlich sein. +FÃŧr diesen Fall eignet sich Bare Metal. \ No newline at end of file diff --git a/content/de/blue-green-deployment.md b/content/de/blue-green-deployment.md index 0530d43040..e54dc55f98 100644 --- a/content/de/blue-green-deployment.md +++ b/content/de/blue-green-deployment.md @@ -33,5 +33,5 @@ Die eine Umgebung (blue) stellt die produktive Anwendung dar (die Version, die v während eine zweite Umgebung (green) bereitgestellt wird. Diese zweite Umgebung enthält eine neue Version der Anwendung. Sobald die Tests in der neuen Umgebung abgeschlossen sind, -wird der Datenverkehr auf diese Umgebung umgelenkt (oft mit Hilfe eines [Load Balancer](/load-balancer/)). +wird der Datenverkehr auf diese Umgebung umgelenkt (oft mit Hilfe eines Load Balancer). Im Anschluss kann die ältere Umgebung (blue) aus dem Betrieb genommen werden. diff --git a/content/de/client-server-architecture.md b/content/de/client-server-architecture.md new file mode 100644 index 0000000000..2ab617f972 --- /dev/null +++ b/content/de/client-server-architecture.md @@ -0,0 +1,31 @@ +--- +title: Client-Server-Architektur +status: Completed +category: Konzept +--- + +## Was es ist + +Bei einer Client-Server-Architektur ist eine Anwendung in zwei oder mehr Komponenten aufgeteilt. Dabei wird unterschieden zwischen Clients und Servern. +Ein Client fordert die Erledigung einer Aufgabe bei einem Server an und der Server wiederum nimmt diese Anfrage entgegen und bearbeitet die Aufgabe. +Ein Beispiel dafÃŧr ist Google Mail. Der Client ist in diesem Fall die Webanwendung bzw. die UI, die im Browser des Nutzers ausgefÃŧhrt wird. +Mit einem Klick auf "Email senden" wird die geschriebene Email and den Server gesendet, der in der Cloud von Google läuft und die Email an den Empfänger weiterleitet. + +Dies steht im Gegensatz zu sogenannten "Standalone" Anwendungen (z. B. Desktop-Anwendungen), die die gesamte Arbeit eigenständig erledigen. +So kann beispielsweise ein Textverarbeitungsprogramm wie Microsoft Word vollständig auf dem Computer des Nutzers installiert und ausgefÃŧhrt werden. + +## Welches Problem es lÃļst + +Eine Client-Server-Architektur lÃļst eine große Herausforderung, die in sich geschlossene Anwendungen mit sich bringen: Regelmäßige Aktualisierungen. +Bei einer Standalone-Anwendung mÃŧssten die Benutzer bei jeder Aktualisierung die neueste Version herunterladen und installieren. +Zum Beispiel mÃŧssten sich die Benutzer regelmäßig den kompletten Produktkatalog von Amazon auf ihre Computer herunterladen. +Außerdem vereinfacht es die gemeinsame Nutzung von Daten. So mÃŧssen Daten nicht mehr verschickt oder sogar auf physischen Datenträgern weitergegeben werden. +Je grÃļßer eine Applikation ist, desto hÃļher werden die Anforderungen an das Endgerät. +Wachsende Standalone Anwendungen belegen dadurch immer mehr physische Ressourcen auf der Maschine des Nutzers. + +## Wie es das Problem lÃļst + +Durch die Implementierung der Anwendungslogik in einem Server kÃļnnen die Betreiber diese aktualisieren, ohne die Logik auf der Client-Seite ändern zu mÃŧssen. +Das fÃŧhrt dazu, dass Aktualisierungen viel häufiger vorgenommen werden kÃļnnen. +Die Speicherung von Daten auf dem Server ermÃļglicht es vielen Clients, dieselben Daten zu sehen und gemeinsam zu nutzen. +Bei einer Client-Server-Architektur muss auf dem Endgerät des Nutzers nicht die komplette Applikation laufen, sondern nur der vergleichsweise schmale Client. Das Backend kann auf externen Servern laufen, die entsprechend hochskaliert werden kÃļnnen. diff --git a/content/de/cluster.md b/content/de/cluster.md new file mode 100644 index 0000000000..f40455eb62 --- /dev/null +++ b/content/de/cluster.md @@ -0,0 +1,29 @@ +--- +title: Cluster +status: Completed +category: Konzept +tags: ["infrastruktur", "grundlegendes", ""] +--- + +## Was es ist + +Ein Cluster ist eine Gruppe von Computern, die ein gemeinsames Ziel haben und als eine Einheit auftreten. +Im Kontext von [Cloud Native Technologien](/cloud-native-tech/) wird der Begriff häufig mit [Kubernetes](/kubernetes/) gleichgesetzt. +Jedenfalls kommunizieren einzelnen Computer Ãŧber ein Netzwerk miteinander. + + +## Welches Problem es lÃļst + +Anwendungen, die nur auf einem einzelnen Computer betrieben werden, stellen einen Single Point of Failure dar. + +Business-kritische Systeme kÃļnnen offline gehen, wenn dieser Computer oder die Anwendung darin abstÃŧrzt. +Ein weiteres Szenario kÃļnnte sein, dass dieser Computer oder die Anwendung darin zwar funktionsfähig sind, +aber Ãŧber das Netzwerk nicht erreichbar sind. + + +## Wie es das Problem lÃļst + +Ein Cluster lÃļst dieses Problem indem mehr als nur ein Computer verwendet wird. +Man spricht hier auch von verteilten Systemen. +Wenn einer dieser Computer oder die Anwendung darin abstÃŧrzt oder aus anderen GrÃŧnden ausfällt, kÃļnnen die anderen Computer Ãŧbernehmen. +HierfÃŧr wird Ãŧblicherweise eine Komponente verwendet, die als Load Balancer bekannt ist und Anfragen an ein Cluster lediglich an erreichbare Computer weiterleitet. \ No newline at end of file diff --git a/content/de/containers.md b/content/de/containers.md new file mode 100644 index 0000000000..5df6532e12 --- /dev/null +++ b/content/de/containers.md @@ -0,0 +1,31 @@ +--- +title: Container +status: Completed +category: Konzept +--- + +## Was es ist + +Ein Container ist eine virtuelle isolierte Umgebung, die als Prozess mit Ressourcen- und Kapazitätsbeschränkungen auf einem Computer läuft und von dessen Betriebssystem verwaltet wird. +Dabei werden dem Container virtuelle Ressourcen des Hosts reserviert und zugeordnet. +Es kÃļnnen mehrere Container auf derselben Maschine laufen und es wird von der Container-Engine sichergestellt, +dass diese nicht dieselben physischen Ressourcen belegen und auch nicht miteinander interagieren. +BenÃļtigte Tools und Dateien werden zu einem autonomen Container-Image verpackt, welches von einer Container-Engine ohne weitere Abhängigkeiten von Tools oder Dateien ausgefÃŧhrt werden kann. + +## Welches Problem es lÃļst + +Bevor es Container gab, waren separate Rechner oder [virtuellen Maschinen](/virtual-machine/) erforderlich, um Anwendungen auszufÃŧhren. +Jede Maschine benÃļtigte ihr eigenes Betriebssystem, das CPU, Speicher und Festplattenplatz beanspruchte, damit eine einzelne Anwendung funktionieren konnte. +FÃŧhrte man mehrere Anwendungen auf derselben Maschine aus, konnte das zu Konflikten in der Ressourcenbelegung fÃŧhren, wenn z.B. zwei Anwendungen auf die selbe Speicherstelle zugreifen. +DarÃŧber hinaus ist die Wartung, das Upgrade und der Start eines Betriebssystems eine weitere mÃŧhsame Angelegenheit. + + +## Wie es das Problem lÃļst + +Container teilen sich dasselbe Betriebssystem, jedoch sind sie durch die Zuordnung virtueller Ressourcen voneinander isoliert, wodurch der Ressourcen-Overhead des Betriebssystems verteilt wird und eine effiziente Nutzung des physischen Rechners ermÃļglicht wird. +Dadurch kÃļnnen mehrere Anwendungen auf demselben physischen Rechner ausgefÃŧhrt werden. +Durch die Nutzung des zugrunde liegenden Betriebssystems, sind sie im Vergleich zu [virtuellen Maschinen](/virtual-machine/) sehr leichtgewichtig und kÃļnnen schneller hoch- und heruntergefahren werden. + +Allerdings gibt es auch Einschränkungen. +Da Container das selbe Betriebssystem nutzen, kÃļnnen Prozesse als weniger sicher angesehen werden. +Um die Ressourcen zu garantieren, mÃŧssen die Administratoren die Speicher- und CPU-Nutzung einschränken und begrenzen, damit andere Anwendungen keine schlechten Leistungen erbringen oder abstÃŧrzen. diff --git a/content/en/_TEMPLATE.md b/content/en/_TEMPLATE.md index 334627ffde..1a6b8f05ae 100644 --- a/content/en/_TEMPLATE.md +++ b/content/en/_TEMPLATE.md @@ -4,8 +4,6 @@ status: Feedback Appreciated category: concept --- -## What it is - Quick summary of the concept and what it is. ## Problem it addresses diff --git a/content/en/_index.md b/content/en/_index.md index 553f1b9e67..4465bc82e9 100755 --- a/content/en/_index.md +++ b/content/en/_index.md @@ -19,8 +19,8 @@ We employ a community-driven process governed by the CNCF to develop and improve This Glossary provides a vendor-neutral platform to organize a shared vocabulary around cloud native technologies. Contributions are welcome from all participants who abide by the project's purpose and charter. -Anyone who wishes to make a contribution may submit a GitHub issue or create a pull request. -Please ensure you follow the [Style Guide](/style-guide/), read the [How To Contribute](/contribute/) doc, and join the [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) channel on the CNCF Slack. +Anyone wishing to contribute may submit a GitHub issue or create a pull request. +Please ensure you follow the [Style Guide](/style-guide/), read the [How To Contribute](/contribute/) doc, join the [CNCF Slack](https://communityinviter.com/apps/cloud-native/cncf) workspace, and join the [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) channel. There is also a [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) channel for those who want to help translate the glossary into their native language. ## Acknowledgements @@ -36,11 +36,16 @@ and many more contributors. For a complete contributor list, please refer to [this GitHub page](https://github.com/cncf/glossary/graphs/contributors). The Glossary is maintained by -[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), -[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), -[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Seokho Son](https://www.linkedin.com/in/seokho-son/), [Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), -and [Seokho Son](https://www.linkedin.com/in/seokho-son/). +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Nate W.](https://www.linkedin.com/in/nate-double-u/), +and [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +and [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +are Emeritus Maintainers, and we are deeply grateful +for their invaluable contributions over the years. ## License diff --git a/content/en/agile-software-development.md b/content/en/agile-software-development.md index a13512ed03..bea3f19dfa 100644 --- a/content/en/agile-software-development.md +++ b/content/en/agile-software-development.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "", ""] --- -## What it is - A set of practices that emphasize iterative development cycles and self-organizing teams. In contrast to waterfall-like projects where value is generated only at the very end of a project, agile software development focuses on a continuous, incremental delivery of value and diff --git a/content/en/api-gateway.md b/content/en/api-gateway.md index c9dde663da..5ee58d8842 100644 --- a/content/en/api-gateway.md +++ b/content/en/api-gateway.md @@ -5,8 +5,6 @@ category: technology tags: ["networking", "", ""] --- -## What it is - An [API](/application-programming-interface/) gateway is a tool that aggregates unique application APIs, making them all available in one place. It allows organizations to move key functions, diff --git a/content/en/application-programming-interface.md b/content/en/application-programming-interface.md index 379792008b..ccb2c70396 100644 --- a/content/en/application-programming-interface.md +++ b/content/en/application-programming-interface.md @@ -5,8 +5,6 @@ category: technology tags: ["architecture", "fundamental", ""] --- -## What it is - An API is a way for computer programs to interact with each other. Just as humans interact with a website via a web page, an API allows computer programs to interact with each other. Unlike human interactions, APIs have limitations on what can and cannot be asked of them. diff --git a/content/en/bare-metal-machine.md b/content/en/bare-metal-machine.md index 92dbc27103..6369abe235 100644 --- a/content/en/bare-metal-machine.md +++ b/content/en/bare-metal-machine.md @@ -5,8 +5,6 @@ category: technology tags: ["infrastructure", "", ""] --- -## What it is - Bare metal refers to a physical computer, more specifically a server, that has one, and only one, operating system. The distinction is important in modern computing because many, if not most, servers are [virtual machines](/virtual-machine/). A physical server is typically a fairly large computer with powerful hardware built-in. diff --git a/content/en/blue-green-deployment.md b/content/en/blue-green-deployment.md index 6aea7c7b57..f0fc7f4b7c 100644 --- a/content/en/blue-green-deployment.md +++ b/content/en/blue-green-deployment.md @@ -5,13 +5,11 @@ category: concept tags: ["methodology", "application", ""] --- -## What it is - Blue-green deployment is a strategy for updating running computer systems with minimal downtime. The operator maintains two environments, dubbed “blue” and “green”. One serves production traffic (the version all users are currently using), whilst the other is updated. Once testing has concluded on the non-active (green) environment, -production traffic is switched over (often via the use of a [load balancer](/load-balancer/)). +production traffic is switched over (often via the use of a load balancer). Note that blue-green deployment usually means switching the entire environments, comprising many [services](/service/), all at once. Confusingly, sometimes the term is used with regard to individual services within a system. To avoid this ambiguity, the term “zero-downtime deployment” is preferred when referring to individual components. diff --git a/content/en/canary-deployment.md b/content/en/canary-deployment.md index 6006eb16d9..dfb9da5599 100644 --- a/content/en/canary-deployment.md +++ b/content/en/canary-deployment.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "application", ""] --- -## What it is - Canary deployments is a deployment strategy that starts with two environments: one with live traffic and the other containing the updated code without live traffic. The traffic is gradually moved from the original version of the application to the updated version. diff --git a/content/en/chaos-engineering.md b/content/en/chaos-engineering.md index e01cf06d42..99bc528637 100644 --- a/content/en/chaos-engineering.md +++ b/content/en/chaos-engineering.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "", ""] --- -## What it is - Chaos Engineering or CE is the discipline of experimenting on a [distributed system](/distributed-systems/) in production to build confidence in the system's capability to withstand turbulent and unexpected conditions. diff --git a/content/en/client-server-architecture.md b/content/en/client-server-architecture.md index 0a7bbfa1fb..84e4aef028 100644 --- a/content/en/client-server-architecture.md +++ b/content/en/client-server-architecture.md @@ -5,8 +5,6 @@ category: concept tags: ["architecture", "fundamental", ""] --- -## What it is - In a client-server architecture, the logic (or code) that makes up an application is split between two or more components: a client that asks for work to be done (e.g. the Gmail web application running in your web browser), diff --git a/content/en/cloud-computing.md b/content/en/cloud-computing.md index 0fd673f600..e8152f93fd 100644 --- a/content/en/cloud-computing.md +++ b/content/en/cloud-computing.md @@ -5,23 +5,17 @@ category: concept tags: ["infrastructure", "fundamental", ""] --- -## What it is - -Cloud computing is a model that offers compute resources like CPU, network, and disk capabilities on-demand over the internet. -Cloud computing gives users the ability to access and use computing power in a remote physical location. -Cloud providers like AWS, GCP, Azure, DigitalOcean, and others all offer third parties -the ability to rent access to compute resources in multiple geographic locations. +Cloud computing offers compute resources like CPU, network, and disk capabilities on-demand over the internet, allowing users to access and use computing power in a remote physical location. +We generally differentiate between private and public cloud, depending on whether the cloud infrastructure is exclusively dedicated to an organization or shared for open public services. ## Problem it addresses -Organizations traditionally faced two main problems when attempting to expand their use of computing power. -They either acquire, support, design, and pay for facilities -to host their physical servers and network or expand and maintain those facilities. -Cloud computing allows organizations to outsource some portion of their computing needs to another organization. +Organizations traditionally faced two main challenges when attempting to expand computing power. +They could either acquire, support, and design (new) facilities to host their physical servers and network or expand and maintain existing ones. +Cloud computing solves that challenge by allowing organizations to outsource some of their computing needs. ## How it helps -Cloud providers offer organizations the ability to rent compute resources on-demand and pay for usage. -This allows for two major innovations: -Organizations can focus on their product or service without waiting, planning, and spending resources on new physical infrastructure. They can simply [scale](/scalability/) as needed and on-demand. +Cloud providers allow organizations to rent compute resources on-demand and pay for usage, delivering two key benefits. +First, organizations can focus on their product or service without waiting, planning, and spending resources on new physical infrastructure. And second, they can simply [scale](/scalability/) on-demand as needed. Cloud computing allows organizations to adopt as much or as little infrastructure as they need. diff --git a/content/en/cloud-native-apps.md b/content/en/cloud-native-apps.md index 0c5a8c7777..513bb17102 100644 --- a/content/en/cloud-native-apps.md +++ b/content/en/cloud-native-apps.md @@ -5,8 +5,6 @@ category: concept tags: ["application", "fundamental", ""] --- -## What it is - Cloud native applications are specifically designed to take advantage of innovations in [cloud computing](/cloud-computing/). These applications integrate easily with their respective cloud architectures, taking advantage of the cloud’s resources and [scaling](/scalability/) capabilities. diff --git a/content/en/cloud-native-security.md b/content/en/cloud-native-security.md index e3cc8eb775..a79ccb1b21 100644 --- a/content/en/cloud-native-security.md +++ b/content/en/cloud-native-security.md @@ -5,8 +5,6 @@ category: concept tags: ["security", "", ""] --- -## What it is - Cloud native security is an approach that builds security into [cloud native applications](/cloud-native-apps/). It ensures that security is part of the entire application lifecycle from development to production. Cloud native security seeks to ensure the same standards as traditional security models diff --git a/content/en/cloud-native-tech.md b/content/en/cloud-native-tech.md index 65aa54cfdb..bfb041c097 100644 --- a/content/en/cloud-native-tech.md +++ b/content/en/cloud-native-tech.md @@ -5,8 +5,6 @@ category: Concept tags: ["fundamental", "", ""] --- -## What it is - Cloud native technologies, also referred to as the cloud native stack, are the technologies used to build [cloud native applications](/cloud-native-apps/). These technologies enable organizations to build and run scalable applications in modern and dynamic environments @@ -28,6 +26,6 @@ as well as inefficient resource utilization, among others. ## How it helps While each technology addresses a very specific problem, -as a group, cloud native technologies enable loosely coupled systems that are resilient, manageable, and observable. +as a group, cloud native technologies enable [loosely coupled systems](/loosely-coupled-architecture/) that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. Desirable traits of cloud native systems are easier to achieve with the cloud native stack. diff --git a/content/en/cluster.md b/content/en/cluster.md index 055260586b..d4eec0a041 100644 --- a/content/en/cluster.md +++ b/content/en/cluster.md @@ -5,8 +5,6 @@ category: Concept tags: ["infrastructure", "fundamental", ""] --- -## What it is - A cluster is a group of computers or applications that work together towards a common goal. In the context of cloud native computing, the term is most often applied to [Kubernetes](/kubernetes/). A Kubernetes cluster is a set of services (or workloads) that run in their own containers, usually on different machines. diff --git a/content/en/container-image.md b/content/en/container-image.md index 5bcee26def..de43aec279 100644 --- a/content/en/container-image.md +++ b/content/en/container-image.md @@ -5,8 +5,6 @@ category: concept tags: ["", "", ""] --- -## What it is - A container image is an immutable, static file containing the dependencies for the creation of a [container](/container/). These dependencies may include a single executable binary file, system libraries, system tools, environment variables, and other required platform settings. diff --git a/content/en/container-orchestration.md b/content/en/container-orchestration.md index c1680f5f9a..504cdec363 100644 --- a/content/en/container-orchestration.md +++ b/content/en/container-orchestration.md @@ -4,17 +4,18 @@ status: Completed category: Concept --- -## What it is [Container](/container/) orchestration refers to managing and automating the lifecycle of containerized applications in dynamic environments. It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes)), which enables deployments, (auto)scaling, auto-healing, and monitoring. Orchestration is a metaphor: The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should. ## Problem it addresses + Managing [microservices](/microservices), security, and network communication at scale — and [distributed systems](/distributed-systems) in general — is hard, if not impossible, to manage manually. Container orchestration allows users to automate all these management tasks. ## How it helps + Container orchestration tools allow users to determine a system's state. First, they declare how it should look like (e.g., x containers, y pods, etc.). The orchestration tool will then automatically monitor the infrastructure and correct it if its state deviates from the declared one (e.g., spin up a new container if one crashes). diff --git a/content/en/container.md b/content/en/container.md index 29ec749c52..6cb69fe323 100644 --- a/content/en/container.md +++ b/content/en/container.md @@ -5,8 +5,6 @@ category: technology tags: ["application", "fundamental", ""] --- -## What it is - A container is a running process with resource and capability constraints managed by a computer’s operating system. The files available to the container process are packaged as a container image. Containers run adjacent to each other on the same machine, diff --git a/content/en/containerization.md b/content/en/containerization.md index d5ab8c060d..60b01eefe3 100644 --- a/content/en/containerization.md +++ b/content/en/containerization.md @@ -5,9 +5,7 @@ category: Technology tags: ["application", "", ""] --- -## What it is - -Containerization is the process of bundling an application and its dependencies into a [container image](/container-image/). +Containerization is the process of bundling an application and its dependencies into a container image. The container build process requires adherence to the [Open Container Initiative](https://opencontainers.org) (OCI) standard. As long as the output is a container image that adheres to this standard, which containerization tool is used doesn't matter. diff --git a/content/en/containers-as-a-service.md b/content/en/containers-as-a-service.md index 91f0db0167..0ecfcd64fe 100644 --- a/content/en/containers-as-a-service.md +++ b/content/en/containers-as-a-service.md @@ -6,8 +6,6 @@ draft: true tags: ["platform", "", ""] --- -## What it is - Containers-as-a-Service (CaaS) is a cloud service that helps manage and deploy apps using [container](/container/)-based [abstraction](/abstraction/). This service can be deployed on-premises or in the cloud. diff --git a/content/en/continuous-delivery.md b/content/en/continuous-delivery.md index 67bf91e798..6445620523 100644 --- a/content/en/continuous-delivery.md +++ b/content/en/continuous-delivery.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "application", ""] --- -## What it is - Continuous delivery, often abbreviated as CD, is a set of practices in which code changes are automatically deployed into an acceptance environment (or, in the case of continuous deployment, into production). diff --git a/content/en/continuous-deployment.md b/content/en/continuous-deployment.md index 5edd1f1516..f6a91f0a3e 100644 --- a/content/en/continuous-deployment.md +++ b/content/en/continuous-deployment.md @@ -5,8 +5,6 @@ category: concept tags: ["application", "methodology", ""] --- -## What it is - Continuous deployment, often abbreviated as CD, goes a step further than [continuous delivery](/continuous-delivery/) by deploying finished software directly to production. Continuous deployment (CD) goes hand in hand with [continuous integration](/continuous-integration/) (CI), diff --git a/content/en/continuous-integration.md b/content/en/continuous-integration.md index f4035f5c5f..b868c12e01 100644 --- a/content/en/continuous-integration.md +++ b/content/en/continuous-integration.md @@ -5,8 +5,6 @@ category: concept tags: ["application", "methodology", ""] --- -## What it is - Continuous integration, often abbreviated as CI, is the practice of integrating code changes as regularly as possible. CI is a prerequisite for [continuous delivery](/continuous-delivery/) (CD). Traditionally, the CI process begins when code changes are committed to a source control system (Git, Mercurial, or Subversion) diff --git a/content/en/contribute/_index.md b/content/en/contribute/_index.md index 1fab015ad4..3e4eb810b1 100644 --- a/content/en/contribute/_index.md +++ b/content/en/contribute/_index.md @@ -7,74 +7,104 @@ menu: weight: 10 --- -The Cloud Native Glossary content is stored in [this GitHub repo](https://github.com/cncf/glossary) -where you'll find a list of [issues](https://github.com/cncf/glossary/issues), [PRs](https://github.com/cncf/glossary/pulls), and -[discussions](https://github.com/cncf/glossary/discussions) about the glossary. +## Welcome -There are four ways you can contribute: +Welcome to the Cloud Native Glossary contributing guide, and thank you for your interest. +There are a number of ways you can contribute to this project, which we'll cover in detail here: 1) [Work on an existing issue](#work-on-an-existing-issue) 2) [Propose new terms](#propose-new-terms) 3) [Update existing ones](#update-an-existing-term) -4) [Help translate the glossary](#help-translate-the-glossary) +4) [Localize the glossary](#help-localize-the-glossary) + +## CNCF glossary overview + +The goal of this glossary is to simplify the cloud native space — which is notorious for its complexity — and thus make it more accessible to people. + +The Cloud Native Glossary content is stored in [this GitHub repo](https://github.com/cncf/glossary) +where you'll find a list of [issues](https://github.com/cncf/glossary/issues), pull requests ([PRs](https://github.com/cncf/glossary/pulls)), and +[discussions](https://github.com/cncf/glossary/discussions) about the glossary. ## Who can contribute? -The goal of this Glossary is to make the cloud native space — which is notorious for its complexity — simpler for people by making it easier to understand. -To do that, we must focus on simplicity. +How you can participate in this project depends on your level of cloud native expertise. +Simplifying complex concepts requires a deep knowledge of the topic. +Therefore, to contribute new terms, you must be proficient in them. +Contributors are typically engineers who have worked with these technologies for some time or academics focused on cloud native. + +That know-how is required because explaining complex concepts in simple words is _really_ hard. And while the digestible, user-friendly outcome may seem easy, achieving the desired simplicity results from hard work and collaboration between cloud native experts. + +If you are not a cloud native expert yet but still want to contribute, we recommend teaming up with someone who is. +Once the expert is confident that the term accurately describes the concept, you are ready for your first Glossary contribution. + +The localization effort is where beginners proficient in another language can make valuable contributions to the Glossary. +With solid existing definitions in English, less experienced contributors can localize terms to a target language. You can join an existing localization team or create a new one. Read this guide's [Help Localize the glossary](#help-localize-the-glossary) section to learn how to get started. + +## Before you start + +Before beginning your Glossary contributor journey, be sure to complete the following steps: + +1. Create a [GitHub account](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account), if you don't have one already. +2. Sign the [Contributor License Agreement](https://docs.linuxfoundation.org/lfx/easycla/v2-current/contributors) (CLA). +3. [Verify your commit signature](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) +4. Enable [vigilant mode](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode) in your GitHub account to display the "Verified" status on your commits. -Explaining complex concepts in simple words is *really* hard. -And while the digestible, user-friendly outcome may seem easy, achieving the desired simplicity is the result of hard work and collaboration between cloud native experts. -In short, to contribute new terms, you need a deep understanding of the topic. +## Best practices {#best-practices} -The localization effort is a bit different. -With solid existing definitions in English, less experienced contributors can still provide good localized terms. -This side of the project is better suited for beginners. +To facilitate the reviewing process, please use [semantic line breaks](https://sembr.org/) (e.g., one line per sentence). +We recommend checking out this [markdown cheat sheet](https://www.markdownguide.org/cheat-sheet/) +to correctly format Markdown text in GitHub (e.g., hyperlink, bold, italic). +And when naming .md files, please use lowercase letters and hyphens instead of spaces to separate words and avoid parenthesis. + +## Style guide + +Read our [Style Guide](/style-guide/) to understand our guidelines for formatting and writing documents and make the contribution process more efficient. ## Join the Glossary community! {#join-the-glossary-community} -Consider joining our monthly Glossary Working Group meetings if you want to contribute regularly. -You can find meeting details in the [CNCF calendar](https://www.cncf.io/calendar/). +If you want to contribute regularly, consider joining our monthly Glossary Working Group meetings. +You can find the meeting details in the [CNCF calendar](https://www.cncf.io/calendar/). You can also connect with the maintainers and fellow contributors in our [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) channel on the CNCF Slack — we'd love to meet you! ## Work on an existing issue {#work-on-an-existing-issue} -Go to the [Glossary GitHub repo issues](https://github.com/cncf/glossary/issues). -There you'll see a list of all issues. You can filter by label (e.g. English language, help needed, good first issue). -Note that you'll need a GitHub account to do any of this. +Go to the [Glossary GitHub repo issues](https://github.com/cncf/glossary/issues) to find a list of available issues. +You can use labels (e.g., English language, help needed, good first issue) to filter out issues. ![Issue and labels](/images/how-to/issue-and-labels.png) -Make sure the term you are interested in is not already assigned to someone. -Here you can see that the first three terms are available while the next term has already been assigned. +Be sure the term you select hasn't already been assigned to anybody. +For example, here you can see that the first three terms are available while the fourth one has already been assigned. ![assigning a term](/images/how-to/howto-04.png) -Once you found a term you want to work on, say so in the issue. Click on it and add a comment. +Once you select a term to work on, comment on the issue. ![Claiming an issue](/images/how-to/claiming-an-issue.png) -Additionally, please also join the [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) channel on the CNCF Slack and -let the maintainers know that you've raised an issue for a new term -(ideally, tag _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_, and/or _@iamnoah_ to be sure they don't miss it). -Note that you can only claim one term at a time. -If you want to work on multiple terms, please finish one before claiming the next one. +Additionally, notify the maintainers on the [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) channel of the CNCF Slack workspace and +tag _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_, and/or _@castrojo_ to be sure they don't miss it. -Once they assign it to you, you can start working on it. For the next steps, please refer to the [Submitting a new term (creating a PR)](#submitting-a-new-term) section. +**Note**: you can start working on an issue after the maintainers assigned it to you. +You can only claim one term at a time. +Workig on multiple terms is sequential, you must complete a term before claiming the next one. + ## Propose new terms {#propose-new-terms} You can propose a new term for others to work on or create a new definition yourself. -Either way, you'll start by creating an issue. -Please note that terms must meet the [CNCF's cloud native definition](https://github.com/cncf/toc/blob/main/DEFINITION.md). +Either way, you'll start by [creating an issue](#creating-an-issue). +To be added to the glossary, every new term must meet the [CNCF's cloud native definition](https://github.com/cncf/toc/blob/main/DEFINITION.md). The only exceptions are foundational terms needed to understand cloud native concepts. -Below is a step-by-step guide for those not yet familiar with GitHub. -**If you are a GitHub Pro**, please _do_ have a quick look to make sure you use our issue templates, -appropriate naming conventions, claim a PR on Slack (otherwise we may miss it), and where to find the file template. -And please make sure to read the [Style Guide](/style-guide/) before getting started — thank you! +Below is a step-by-step guide for people unfamiliar with GitHub. +**If you are a GitHub Pro**, please _do_ scan this guide to gather enough information about the following topics: + +1. Locating templates for issues and new terms. +2. Claiming issues. +3. Solving [spell check](#spell-check) failures. ### Creating an issue {#creating-an-issue} @@ -82,36 +112,31 @@ Go to the [Glossary GitHub repo](https://github.com/cncf/glossary/issues) issues ![issues](/images/how-to/howto-01.png) -You'll see a variety of templates. To propose a new term in English, select "Request to add a new term (English)". +Select "Request to add a new term (English)" from the list of templates. ![templates](/images/how-to/english-issue-template.jpg) -Add the word you're suggesting, answer the two questions below, check the checkboxes, and hit "Submit new issue". -If you're just proposing a new term, you're done! To work on it, follow the next steps. +Add the word you're suggesting, answer the questions, check the boxes, and hit "Submit new issue". +If you're just proposing a new term, you're done! If you want to work on the definition, keep reading. ### Triaging your issue {#triaging-your-issue} Next, the maintainers will triage the issue. -That means they will assess if the term should be part of the Glossary -(note, not every term will be admitted. Terms should be established and widely-used cloud native terms). +That means they will assess if the term should be part of the Glossary. +Not every term will be admitted. To be included in the Glossary, they should be established and widely-used cloud native concepts. -Please let the maintainers know that you've submitted a term on Slack as they may otherwise miss it. -Ideally, tag _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_, and/or _@iamnoah_. -If the term is approved and you want to work on it, they'll assign it to you. - -Note that you can only claim one term at a time. -If you want to work on multiple terms, please finish one before claiming the next. +Please let the maintainers know that you've proposed a new term on Slack and tag _@iamnoah_, _@nate-double-u_, _@Seokho Son_, _@Jihoon Seo_, and/or _@castrojo_ so that they don't miss it. +If you want to work on the definition, let the maintainers know and they'll assign it to you. ### Submitting a new term (creating a PR) {#submitting-a-new-term} -Before getting started, please read the [Style Guide](/style-guide/) — it will help minimize backs and forth. -As stated in the style guide, we highly recommend starting with a Google or Word doc. +As stated in our [Style Guide](/style-guide/), we highly recommend starting with a Google or Word doc. -Once the term is ready to submit, go to content (under code)â€Ļ +Once the term is ready to submit, go to content (under <>code)â€Ļ ![content](/images/how-to/howto-05.png) -â€Ļthen "en" (or the language you are submitting for)â€Ļ +â€Ļthen "en" (for English) or the first two letters of the language you are contributing toâ€Ļ ![language folder](/images/how-to/howto-06.png) @@ -123,61 +148,78 @@ Copy the contentâ€Ļ ![copy content](/images/how-to/howto-08.png) -â€Ļand go back to the "en" folder. Hit "Add file" and select "Create new file". +â€Ļand go back to the "en" folder. Click "Add file" and select "Create new file". ![create new file](/images/how-to/howto-09.png) -Add the term name in the URL (no capitalization, no spaces, no parentheses, and use hyphens to separate words) -and .md at the end (note: if your preview doesn't work, you probably forgot to add .md at the end). -Now paste the template content below. Copy and paste your definition into the file. -To make reviews easier, please **use [semantic line breaks](https://sembr.org/)** (e.g. one line per sentence). -Note that GitHub uses markdown to format the text (e.g., hyperlink, bold, italic). -Please refer to this [markdown cheat sheet](https://www.markdownguide.org/cheat-sheet/). -To verify you've used markdown as intended, go to "Preview". +Add the name of the term in the URL as described in the [Best practices](#best-practices) section. +Add the .md extension at the end of the name (without this extension you won't be able to preview your file). +Now paste the template content in the section below. Copy and paste the text of your definition into the file. +To verify you've used Markdown as described in the [Best practices](#best-practices) section, click on "Preview". ![finalize term](/images/how-to/howto-10.png) -Scroll down and name the new commit file when you are ready to submit. -You are now about to commit the term to your own branch. -Submitting a PR requires one more step. Hit "Commit new file" andâ€Ļ +Scroll down and name the new commit file. Hit "Commit new file" when you are ready to submit +andâ€Ļ ![commit new file](/images/how-to/howto-11.png) -â€Ļnow you're creating an PR: +â€Ļ you're now ready to create a new PR: ![create a pr](/images/how-to/howto-12.png) -You should now see your PR under "Pull requests". +Once you hit the "Create pull request" button your PR should be visible in the "Pull requests" tab. ![prs](/images/how-to/howto-13.png) ## Update an existing term {#update-an-existing-term} -To update an existing term, you can either suggest a change via an issue or go ahead and update the term directly by submitting a pull request (PR). +To update an existing term, you can either request changes by creating an issue +or work on the changes yourself and submit a PR. ### Request a change via an issue {#request-a-change-via-an-issue} -If you want to flag a problem with a term but don't know how or want to fix it yourself, click on "Report issue". +If you want to flag a problem with a term, you can use the "Report issue" option of the CNCF Glossary webpage. +Locate yourself in the CNCF page of the concept you'd like to flag and click on "Report issue". +This will automatically open an issue for you ![report issue](/images/how-to/howto-14.png) -This will directly open an issue. Please elaborate on which change is needed and why. Hit submit, and that's it. +Please describe your suggestions and why they are needed. Hit submit, and that's it. ![submit issue](/images/how-to/howto-15.png) ### Update a term directly {#update-a-term-directly} -To change a term directly, go to "Edit this page". +To modify a term and submit your suggestions, click "Edit this page." ![edit this page](/images/how-to/howto-16.png) -This will open the term's GitHub page. Make your changes and submit a PR. -Please refer to "Submitting a new term" above for a detailed description (jump to the section that speaks about markdown). +This will open the term's GitHub page. Make your changes and create a PR. +Please refer to the [Best practices](#best-practices) section above +and read our [Style Guide](/style-guide/) to make sure you follow our guidelines. -## Help translate the glossary {#help-translate-the-glossary} +## Help localize the glossary {#help-localize-the-glossary} -To help translate the glossary into your native language, please join the [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) channel on the CNCF Slack and let us know. +To help localize the glossary into a target language, please join the [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) channel on the CNCF Slack workspace and send us a message. You can either join an existing team or create a new one -(to see what it takes, check out or [Localization Guide](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)). -Please also join our monthly Glossary Working Group meetings. You can find meeting details in the [CNCF calendar](https://www.cncf.io/calendar/). -We look forward to meeting you there! +(to see what it takes, read our [Localization Guide](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)). +Please read the **How to contribute** guide of the target language to gather the specifics of that team's contribution process. + +## Spell check {#spell-check} + +There are two main reasons why the spell check can fail: + +- The PR contains misspellings. +- The PR contains words that are not registered in the word list. + +To add new words to the list, follow these steps: + +1. In your PR, locate the file "wordlist.txt". +2. Click "Edit this file" and add the missing words in alphabetic order. +3. Add a commit message and select "Sign off and propose changes". + +**Note**: the spell check is case-insensitive. + + +**We updated this guide based on templates from [The Good Docs Project](https://thegooddocsproject.dev/).** diff --git a/content/en/data-center.md b/content/en/data-center.md index 59a0cbaa78..096b070051 100644 --- a/content/en/data-center.md +++ b/content/en/data-center.md @@ -5,8 +5,6 @@ category: Technology tags: ["infrastructure", "fundamental", ""] --- -## What it is - A datacenter is a specialized building or facility designed to house computers, most often servers. These datacenters tend to be connected to high-speed internet lines, especially when focused on [cloud computing](/cloud-computing/). The buildings housing datacenters are equipped to maintain service even during adverse events, including generators that provide power during outages and powerful air conditioning that keep the heat-producing computers cool. diff --git a/content/en/database-as-a-service.md b/content/en/database-as-a-service.md index 58f298ab68..e8fc195bd0 100644 --- a/content/en/database-as-a-service.md +++ b/content/en/database-as-a-service.md @@ -6,8 +6,6 @@ draft: true tags: ["", "", ""] --- -## What it is - Database-as-a-Service (DBaaS) is a service managed by a [cloud](/cloud-computing/) operator (public or private) that supports applications without requiring the application team to perform traditional database administration functions. diff --git a/content/en/debugging.md b/content/en/debugging.md index 4545902109..59e3b931ae 100644 --- a/content/en/debugging.md +++ b/content/en/debugging.md @@ -6,8 +6,6 @@ draft: true tags: ["application", "methodology", ""] --- -## What it is - Debugging is the process or activity of finding and resolving bugs (or errors) from computer programs, software, or systems to get the desired result. A bug is a defect or a problem leading to incorrect or unexpected results. diff --git a/content/en/devops.md b/content/en/devops.md index 6dc170f1a9..271e0147fb 100644 --- a/content/en/devops.md +++ b/content/en/devops.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "", ""] --- -## What it is - DevOps is a methodology in which teams own the entire process from application development to production operations, hence DevOps. It goes beyond implementing a set of technologies and requires a complete shift in culture and processes. DevOps calls for groups of engineers that work on small components (versus an entire feature), decreasing handoffs – a common source of errors. diff --git a/content/en/devsecops.md b/content/en/devsecops.md index 66bf7de7c2..0185989d88 100644 --- a/content/en/devsecops.md +++ b/content/en/devsecops.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "security", ""] --- -## What it is - The term DevSecOps refers to a cultural merger of the development, operational, and security responsibilities. It extends the [DevOps](/devops/) approach to include security priorities with minimal to no disruption in the developer and operational workflow. @@ -14,12 +12,12 @@ Like DevOps, DevSecOps is a cultural shift, pushed by the technologies adopted, ## Problem it addresses -DevOps practices include [continuous integration](/continuous-integration/) and [continuous deployment](/continuous-delivery/) -and accelerate application development and release cycles. +DevOps practices include [continuous integration](/continuous-integration/), [continuous delivery](/continuous-delivery/), +and [continuous deployment](/continuous-deployment/) and accelerate application development and release cycles. Unfortunately, automated release processes that fail to represent all organizational stakeholders adequately can exacerbate existing issues. A process that rapidly releases new software without considering security needs -can degrade an organizations’ security posture. +can degrade an organization's security posture. ## How it helps diff --git a/content/en/digital-certificate.md b/content/en/digital-certificate.md index 3b58b9905d..10627da3ec 100644 --- a/content/en/digital-certificate.md +++ b/content/en/digital-certificate.md @@ -5,8 +5,6 @@ category: technology tags: ["security", "", ""] --- -## What it is - A (digital) certificate — also often referred to as a public key certificate, or SSL certificate — is a digital document used to help secure communications over the network. Certificates allow us to know that the particular entity we're communicating with is who they say they are. They also allow us to ensure that our communications are private by encrypting the data we send and receive. diff --git a/content/en/distributed-apps.md b/content/en/distributed-apps.md index ac57c62d43..ccf00e69bf 100644 --- a/content/en/distributed-apps.md +++ b/content/en/distributed-apps.md @@ -5,8 +5,6 @@ category: concept tags: ["architecture", "", ""] --- -## What it is - A distributed application is an application where the functionality is broken down into multiple smaller independent parts. Distributed applications are usually composed of individual [microservices](/microservices/) that handle different concerns within the broader application. diff --git a/content/en/distributed-systems.md b/content/en/distributed-systems.md index 358b03b11c..474dbb9528 100644 --- a/content/en/distributed-systems.md +++ b/content/en/distributed-systems.md @@ -5,8 +5,6 @@ category: concept tags: ["architecture", "", ""] --- -## What it is - A distributed system is a collection of autonomous computing elements connected over a network that appears to users as a single coherent system. Generally referred to as [nodes](/nodes/), these components can be hardware devices (e.g. computers, mobile phones) or software processes. diff --git a/content/en/ebpf.md b/content/en/ebpf.md new file mode 100644 index 0000000000..a35f9be2f0 --- /dev/null +++ b/content/en/ebpf.md @@ -0,0 +1,39 @@ +--- +title: eBPF +status: Completed +category: architecture +--- + +eBPF, or extended Berkeley Packet Filter, is a technology that allows small, sandboxed programs or scripts to run in the kernel space of a Linux system without having to change the kernel's source code or load Linux kernel modules. + +A Linux system has two spaces: the kernel and the user space. +The kernel represents the operating system's core and is the only part +with unlimited access to the hardware. + +Applications reside in the user space, and when they need higher permissions, +they send a request to the kernel. +For applications that require more flexibility, such as direct hardware +access, the kernel can be extended via what is known as the "Linux +kernel modules" approach. This approach extends the kernel's default functionality, + allowing applications deeper access to the underlying components. + However, this approach also introduces security risks, making eBPF an attractive alternative. + +## Problem it addresses +Typically, applications run in the user space, and if the application requires some privileges from the kernel (e.g., to access some hardware), +it requests it from the kernel via a so-called "system call." +In most cases, this approach works just fine. However, there are instances where developers require more flexibility for low-level system access. +Observability, security, and networking features are good examples. +To achieve that, we can use Linux kernel modules, extending the kernel base without modifying the kernel source code. +While there are benefits to using Linux kernel modules, it also introduces security risks. +Because they operate within the kernel space, Linux kernel modules can crash the kernel, and when the kernel crashes, so does the entire machine. +Additionally, kernel modules have elevated privileges and direct access to system resources. And if not properly secured, attackers can exploit these. + +## How it helps +eBPF provides a more controlled and contained environment for executing user-defined programs than Linux Kernel modules. +It runs in a sandboxed environment within the kernel, providing isolation and mitigating risk. +If a vulnerability or flaw is exploited in an eBPF program, its impact is generally limited to the sandboxed environment. +Moreover, before an eBPF program can start running in the kernel, it has to pass some verifications. +The verifier component checks the eBPF program for potential safety violations, +such as out-of-bounds memory access, infinite loops, and unauthorized kernel functions. +This way, it ensures the program won't enter an infinite loop and cause a kernel crash. +These safety controls make eBPF a more secure option to run applications in the Linux kernel than the Linux kernel modules. diff --git a/content/en/edge-computing.md b/content/en/edge-computing.md index d011297a88..a8c291df1e 100644 --- a/content/en/edge-computing.md +++ b/content/en/edge-computing.md @@ -4,8 +4,6 @@ status: Completed category: Technology --- -## What it is - Edge computing is a [distributed system](/distributed-systems/) approach that shifts some storage and computing capacity from the primary data center to the data source. The gathered data is computed locally (e.g., on a factory floor, in a store, or throughout a city) rather than sent to a centralized data center for processing and analysis. These local processing units or devices represent the system's edge, whereas the data center is its center. @@ -27,5 +25,3 @@ As described above, for edge devices to be useful, they must do at least part of This is achieved by shifting some storage and processing resources from the data center to where the data is generated: the edge device. Processed and unprocessed data is subsequently sent to the data center for further processing and storage. In short, efficiency and speed are the primary drivers of edge computing. - - diff --git a/content/en/event-driven-architecture.md b/content/en/event-driven-architecture.md index 1b0b56fd6c..76f064b669 100644 --- a/content/en/event-driven-architecture.md +++ b/content/en/event-driven-architecture.md @@ -5,8 +5,6 @@ category: concept tags: ["architecture", "", ""] --- -## What it is - Event-driven architecture is a software architecture that promotes the creation, processing, and consumption of events. An event is any change to an application's state. For example, hailing a ride on a ride-sharing app represents an event. diff --git a/content/en/event-streaming.md b/content/en/event-streaming.md index 529920e64e..467d492dea 100644 --- a/content/en/event-streaming.md +++ b/content/en/event-streaming.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "networking", ""] --- -## What it is - Event streaming is an approach where software sends event data from one application to another to continuously communicate what they are doing. Picture a service broadcasting everything it does to all other services. Each activity taken by a service is referred to as an event, hence event streaming. diff --git a/content/en/firewall.md b/content/en/firewall.md index be1234bc73..1fb551763d 100644 --- a/content/en/firewall.md +++ b/content/en/firewall.md @@ -6,8 +6,6 @@ category: Technology tags: ["", "", ""] --- -## What it is - A firewall is a system that filters network traffic on the basis of specified rules. Firewalls can be hardware, software, or a combination of the two. diff --git a/content/en/function-as-a-service.md b/content/en/function-as-a-service.md index cffa8bfdbb..55cca7034a 100644 --- a/content/en/function-as-a-service.md +++ b/content/en/function-as-a-service.md @@ -5,8 +5,6 @@ category: Technology tags: ["infrastructure", "", ""] --- -## What it is - Function as a Service (FaaS) is a type of [serverless](/serverless/) [cloud computing](/cloud-computing/) [service](/service/) that allows executing code in response to events without maintaining the complex infrastructure diff --git a/content/en/gitops.md b/content/en/gitops.md index eed0abe284..251d4e5cf9 100644 --- a/content/en/gitops.md +++ b/content/en/gitops.md @@ -5,8 +5,6 @@ category: Concept tags: ["methodology", "", ""] --- -## What it is - GitOps is a set of best practices based on [shared principles](https://opengitops.dev/), applied to a workflow that depends on software agents that enable automation to reconcile a declared system state or configuration in a git repository. diff --git a/content/en/horizontal-scaling.md b/content/en/horizontal-scaling.md index e495a46a1e..99b1f71641 100644 --- a/content/en/horizontal-scaling.md +++ b/content/en/horizontal-scaling.md @@ -5,8 +5,6 @@ category: Concept tags: ["infrastructure", "", ""] --- -## What it is - Horizontal scaling is a technique where a system's capacity is increased by adding more [nodes](/nodes/) versus adding more compute resources to individual nodes (the latter being known as [vertical scaling](/vertical-scaling/)). Let's say, we have a system of 4GB RAM and want to increase its capacity to 16GB RAM, diff --git a/content/en/hypervisor.md b/content/en/hypervisor.md index cd16d6f70f..30ec7439f8 100644 --- a/content/en/hypervisor.md +++ b/content/en/hypervisor.md @@ -5,8 +5,6 @@ category: Technology tags: ["application", "", ""] --- -## What it is - A hypervisor enables [virtualization](/virtualization/) by taking the advantage of [bare metal machine](/bare-metal-machine/) resources (CPU, Memory, Network, and Storage), dividing them into sub-parts, diff --git a/content/en/idempotence.md b/content/en/idempotence.md index 1c2e4043e3..358d4b3326 100644 --- a/content/en/idempotence.md +++ b/content/en/idempotence.md @@ -7,4 +7,4 @@ tags: ["property", "", ""] In maths or computer science, idempotence describes an operation that always leads to the same outcome, no matter how many times you execute it. -If the parameters are the same, an idempotent operation won't affect the application it calls. +If the parameters are the same, executing an idempotent operation several times will have no additional effect. diff --git a/content/en/infrastructure-as-a-service.md b/content/en/infrastructure-as-a-service.md index 7bf308bdb6..02ca02546b 100644 --- a/content/en/infrastructure-as-a-service.md +++ b/content/en/infrastructure-as-a-service.md @@ -5,8 +5,6 @@ category: Technology tags: ["infrastructure", "", ""] --- -## What it is - Infrastructure as a service, or IaaS, is a [cloud computing](/cloud-computing/) service model that offers [physical](/bare-metal-machine/) or [virtualized](/virtualization/) compute, storage, and network resources on-demand on a pay-as-you-go model. diff --git a/content/en/infrastructure-as-code.md b/content/en/infrastructure-as-code.md index a8c13bf8ab..bd63edade2 100644 --- a/content/en/infrastructure-as-code.md +++ b/content/en/infrastructure-as-code.md @@ -5,8 +5,6 @@ category: concept tags: ["infrastructure", "methodology", ""] --- -## What it is - Infrastructure as code is the practice of storing the definition of infrastructure as one or more files. This replaces the traditional model where infrastructure as a service is provisioned manually, usually through shell scripts or other configuration tools. diff --git a/content/en/ingress.md b/content/en/ingress.md new file mode 100644 index 0000000000..2dbcfc6ec4 --- /dev/null +++ b/content/en/ingress.md @@ -0,0 +1,30 @@ +--- +title: Ingress +status: Feedback Appreciated +category: technology +tags: ["fundamental", "", ""] +--- + +An Ingress is a set of rules that helps to manage internet traffic from outside into a container or a group of containers running in a cluster. +It consists of two elements: the ingress resource and the ingress controller. +The ingress resource is a configuration file that lives along with other manifest files and allows admins to configure the external traffic routing. +The ingress controller is the web server technology that actually performs the routing of the traffic according to the configuration in the ingress resource. + +## Problem it addresses + +Cloud Native web applications consist of multiple services, and often, those [services](/service/) need to be accessible over the internet for users to visit using their browser. +To make these services user accessible while using [Kubernetes](/kubernetes/) to run this application, we need to expose each application service to the outside world. +The most straightforward way would be to use a Kubernetes Load Balancer Service. +Creating such a Kubernetes Load Balancer Service results in a new component on the underlying infrastructure. +This not only introduces new costs and management overhead, but each newly created Load Balancer has its own external IP address. +This leads to a bad user experience, because as a user, we don’t want to browse different URLs to access an application. + +## How it helps + +An Ingress resource allows you to configure how traffic is balanced and routed to an application’s services. +The ingress controller is a web server that allows for a single entry point through a URL (www.example-url.com) and does the actual routing and balancing based on different URL paths (www.example-url.com/path). +An Ingress controller is a component that runs within the cluster and interprets the rules defined in the Ingress resource. +It is up to the cluster operators where the web app runs to choose a specific Ingress controller from a set of possible technologies like Nginx, Traefik, HAProxy, etc. +So now, if an application consists of multiple services, the user can access it using a single URL. +This eliminates the need for numerous separate load balancers on the infrastructure level and eases the configuration of firewall and load balancer rules for each service. +By centralizing traffic routing and handling configurations, Ingress provides streamlined scalability, optimizes resource utilization, reduces costs, and improves overall manageability for applications running in a cluster. \ No newline at end of file diff --git a/content/en/kubernetes.md b/content/en/kubernetes.md index 0efca668b6..53c971bfc4 100644 --- a/content/en/kubernetes.md +++ b/content/en/kubernetes.md @@ -5,8 +5,6 @@ category: technology tags: ["infrastructure", "fundamental", ""] --- -## What it is - Kubernetes, often abbreviated as K8s, is an open source container orchestrator. It automates the lifecycle of containerized applications on modern infrastructures, functioning as a "datacenter operating system" that manages applications across a [distributed system](/distributed-systems/). diff --git a/content/en/load-balancer.md b/content/en/load-balancer.md index ba2f3a3924..861dd4033d 100644 --- a/content/en/load-balancer.md +++ b/content/en/load-balancer.md @@ -5,8 +5,6 @@ category: concept tags: ["infrastructure", "networking", ""] --- -## What it is - A load balancer is a tool that efficiently distributes incoming requests among multiple instances of an application. Take a [microservice](/microservices/) architecture for example, where each service can be [scaled horizontally](/horizontal-scaling/). A load balancer sits in front of a scaled microservice and ensures that no one instance gets the bulk of the requests. diff --git a/content/en/managed-services.md b/content/en/managed-services.md index 398a2f3597..8f541b9791 100644 --- a/content/en/managed-services.md +++ b/content/en/managed-services.md @@ -6,8 +6,6 @@ category: Technology tags: ["", "", ""] --- -## What it is - A managed service is a software offering where operations and management are taken care of by a third party. Examples include database as a service offerings like Amazon’s RDS or an external monitoring service like Datadog. diff --git a/content/en/microservices-architecture.md b/content/en/microservices-architecture.md index e52661718a..9badc03ad0 100644 --- a/content/en/microservices-architecture.md +++ b/content/en/microservices-architecture.md @@ -4,8 +4,6 @@ status: Completed tags: ["architecture", "fundamental", ""] --- -## What it is - A microservices architecture is an architectural approach that breaks applications into individual independent (micro)[services](/service/), with each service focused on a specific functionality. These services work together closely, appearing to the end user as a single entity. Take Netflix as an example. @@ -25,7 +23,7 @@ Traditionally (monolithic approach), the entire app would have to be [scaled](/s Monolithic architectures also make it easy for developers to succumb to design pitfalls. Because all the code is in one place, it is easier to make that code [tightly coupled](/tightly-coupled-architectures/) and harder to enforce the principle of separation of concerns. -Monoliths also often require developers to understand the entire codebase before deploying any chances. +Monoliths also often require developers to understand the entire codebase before deploying any changes. Microservices architecture is a response to these challenges. diff --git a/content/en/monolithic-apps.md b/content/en/monolithic-apps.md index 42ebb8fbd4..c0bc6de7c7 100644 --- a/content/en/monolithic-apps.md +++ b/content/en/monolithic-apps.md @@ -5,8 +5,6 @@ category: concept tags: ["architecture", "fundamental", ""] --- -## What it is - A monolithic application contains all functionality in a single deployable program. This is often the simplest and easiest place to start when making an application. However, once the application grows in complexity, monoliths can become hard to maintain. diff --git a/content/en/multitenancy.md b/content/en/multitenancy.md index 1b903ff5ad..de0773b66e 100644 --- a/content/en/multitenancy.md +++ b/content/en/multitenancy.md @@ -5,8 +5,6 @@ category: Property tags: ["architecture", "property", ""] --- -## What it is - Multitenancy (or multi-tenancy) refers to a single software installation that serves multiple tenants. A tenant is a user, application, or a group of users/applications that utilize the software to operate on their own data set. These tenants don't share data (unless explicitly instructed by the owner) and may not even be aware of one another. @@ -35,5 +33,5 @@ on to the tenants, significantly reducing the software cost for users (again, th ## Related terms -Multitenancy is not synonymous with [SaaS](/software-as-a-service/), +Multitenancy is not synonymous with SaaS, although it is very common for SaaS to be multitenant and even to feature multitenancy as one of its core benefits. diff --git a/content/en/mutual-transport-layer-security.md b/content/en/mutual-transport-layer-security.md index de54fa9c82..9e50ae05bf 100644 --- a/content/en/mutual-transport-layer-security.md +++ b/content/en/mutual-transport-layer-security.md @@ -5,8 +5,6 @@ category: Concept tags: ["security", "networking", ""] --- -## What it is - Mutual TLS (mTLS) is a technique used to authenticate and encrypt messages sent between two [services](/service/). Mutual TLS is the standard [Transport Layer Security](/transport-layer-security/) (TLS) protocol but, instead of validating the identity of just one connection, both sides are validated. diff --git a/content/en/nodes.md b/content/en/nodes.md index 88a39b7c1a..434645ebf5 100644 --- a/content/en/nodes.md +++ b/content/en/nodes.md @@ -5,8 +5,6 @@ category: Concept tags: ["infrastructure", "fundamental", ""] --- -## What it is - A node is a computer that works in concert with other computers, or nodes, to accomplish a common task. Take your laptop, modem, and printer, for example. They are all connected over your wifi network communicating and collaborating, each representing one node. diff --git a/content/en/observability.md b/content/en/observability.md index 5a2cd678bc..c7baf913ba 100644 --- a/content/en/observability.md +++ b/content/en/observability.md @@ -5,20 +5,12 @@ category: concept tags: ["property", "", ""] --- -## What it is - -Observability is the capability to continuously generate and discover actionable insights based on signals from the system under observation. -In other words, observability allows users to understand a system's state from its external output and take (corrective) action. - -## Problem it addresses +Observability is a system property that defines the degree to which the system can generate actionable insights. +It allows users to understand a system's state from these external outputs and take (corrective) action. Computer systems are measured by observing low-level signals such as CPU time, memory, disk space, and higher-level and business signals, including API response times, errors, transactions per second, etc. +These observable systems are **observed** (or monitored) through specialized tools, so-called observability tools. A list of these tools can be viewed in the [Cloud Native Landscape's observability section](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category). -The observability of a system has a significant impact on its operating and development costs. Observable systems yield meaningful, actionable data to their operators, allowing them to achieve favorable outcomes (faster incident response, increased developer productivity) and less toil and downtime. -## How it helps - -Understanding that more information does not necessarily translate into a more observable system is pivotal. -In fact, sometimes, the amount of information generated by a system can make it harder to identify valuable health signals from the noise generated by the application. -Observability requires the right data at the right time for the right consumer (human or piece of software) to make the right decisions. +Consequently, how observable a system is will significantly impact its operating and development costs. diff --git a/content/en/platform-as-a-service.md b/content/en/platform-as-a-service.md index 1734d310a1..47bbd94501 100644 --- a/content/en/platform-as-a-service.md +++ b/content/en/platform-as-a-service.md @@ -6,8 +6,6 @@ draft: true tags: ["fundamental", "platform", ""] --- -## What it is - A Platform as a Service, or PaaS, is an external platform for application development teams to deploy and run their apps. Heroku, Cloud Foundry, App Engine are examples of PaaS offerings. diff --git a/content/en/pod.md b/content/en/pod.md new file mode 100644 index 0000000000..307b2b0a8f --- /dev/null +++ b/content/en/pod.md @@ -0,0 +1,31 @@ +--- +title: Pod +status: Completed +category: concept +tags: ["infrastructure", "fundamental", ""] +--- + +Within a [Kubernetes](/kubernetes/) environment, a pod acts as the most basic deployable unit. +It represents an essential building block for deploying and managing containerized applications. +Each pod contains a single application instance and can hold one or more [containers](/container/). +Kubernetes manages pods as part of a larger deployment and can scale pods [vertically](/vertical-scaling/) or [horizontally](/horizontal-scaling/) as needed. + +## Problem it addresses + +While containers generally act as independent units that run and control a particular workload, +there are cases when containers need to interact and be controlled in a tightly coupled manner. + +If each of these closely related containers were managed individually, it would lead to redundant management tasks. +For example, the operator would have to repeatedly determine the placement of related containers to ensure they remain together. +And although the lifecycles of these related containers need to be synchronized, they can only be managed individually. + + +## How it helps + +Pods bundle closely tied containers into a single unit, significantly simplifying container operations. +For instance, auxiliary containers are often used alongside the main container to add additional functionalities or to set up global configurations. +Examples include containers that inject and apply basic settings to the main container, +_sidecar_ (containers) that handle network traffic routing for the main container (see [service mesh](/service-mesh/)), +or containers collecting logs in conjunction with each container. + +Memory and CPU allocation can be defined either on a pod level, allowing the containers inside to share resources in a flexible way, or per container. diff --git a/content/en/policy-as-code.md b/content/en/policy-as-code.md index b2fa29d653..d542fcefc0 100644 --- a/content/en/policy-as-code.md +++ b/content/en/policy-as-code.md @@ -3,11 +3,8 @@ title: Policy as Code (PaC) status: Completed category: concept tags: ["methodology", "", ""] -draft: --- -## What it is - Policy as Code is the practice of storing the definition of policies as one or more files in machine-readable and processable form. This replaces the traditional model where policies are documented in human-readable form in separate documents. diff --git a/content/en/role-based-access-control.md b/content/en/role-based-access-control.md new file mode 100644 index 0000000000..c82e98e396 --- /dev/null +++ b/content/en/role-based-access-control.md @@ -0,0 +1,24 @@ +--- +title: Role-Based Access Control (RBAC) +status: Completed +category: concept +tags: ["security", "", ""] +--- + +Role-based access control (RBAC) is a security method of managing user access to systems, networks, or resources based on their role within a team or a larger organization. +RBAC empowers IT administrators to identify the necessary level of access for all users with a particular job function and assign those users a role with a predefined set of permissions. +Organizations utilize RBAC to provide their employees with varying levels of access tailored to their roles and responsibilities. + +## Problem it addresses + +RBAC addresses the challenge of controlling the resources team members and applications can access, +as well as the actions they can perform, especially as the number of applications and team members increases. +Administrators must ensure that each user has the correct permissions for the resources they need to access. +This task can become cumbersome and error-prone without a structured access control mechanism. + + +## How it helps + +RBAC provides IT teams with the capability to easily manage permissions for all users in a group simultaneously or make swift adjustments to an individual user's access level by assigning or removing a role. +This safeguards sensitive data and ensures that employees can only access information and perform actions necessary for their job responsibilities. +Overall, RBAC enhances access management, bolsters security, and boosts operational efficiency within organizations. diff --git a/content/en/runtime.md b/content/en/runtime.md new file mode 100644 index 0000000000..244af3c712 --- /dev/null +++ b/content/en/runtime.md @@ -0,0 +1,35 @@ +--- +title: Runtime +status: Completed +category: concept +tags: ["application", "", ""] +--- + +A runtime, in general, executes a piece of software. +It is an [abstraction](/abstraction/) of the underlying operating system that translates the program's commands into respective actions for the operating system. + +In the context of [cloud native](/cloud-native-apps/), _runtime_ generally refers to container runtime. +A container runtime specifically implements the [Open Container Initiative](https://opencontainers.org/) specification to ensure consistent handling around different container orchestration technologies. + +## Problem it addresses + +Without the abstraction of a container runtime, the application would have to deal with all the mechanics of each operating system, increasing the complexity of running the app. + +## How it helps +Container runtimes are a necessary component of container orchestrators such as Kubernetes. +They handle the container lifecycle, which does mainly three things. +First, it defines how container images are specified and how the runtime can retrieve them. +Second, they handle how these images are unpacked, layered, mounted, and executed. +Furthermore, runtimes manage hardware resources taking care of all these operating system-level actions. +These include resource allocation and isolation. +Over time, different container runtime products evolved, leading to the OCI Specification, +which became the standard for container runtimes. + +Introducing this standard allows end users to combine any OCI-compliant runtime with any OCI-compliant container orchestrator (like Kubernetes). + +## Related terms + +- [Cloud Native](https://glossary.cncf.io/cloud-native-apps/) +- [Containerization](https://glossary.cncf.io/containerization/) +- [Container Orchestration](https://glossary.cncf.io/container-orchestration/) +- [Microservices Architecture](https://glossary.cncf.io/microservices-architecture/) diff --git a/content/en/security-chaos-engineering.md b/content/en/security-chaos-engineering.md index 646f57bce6..0affd08570 100644 --- a/content/en/security-chaos-engineering.md +++ b/content/en/security-chaos-engineering.md @@ -5,8 +5,6 @@ category: concept tags: ["security", "methodology", ""] --- -## What it is - Security Chaos Engineering or SCE is a discipline based on [Chaos Engineering](/chaos-engineering/). SCE performs proactive security experimentation on a distributed system to build confidence in the system's capability to withstand turbulent and malicious conditions. diff --git a/content/en/serverless.md b/content/en/serverless.md index 7ea7dfa7b1..c3fd0841db 100644 --- a/content/en/serverless.md +++ b/content/en/serverless.md @@ -5,16 +5,14 @@ Category: Technology tags: ["architecture", "", ""] --- -## What it is - Serverless is a cloud native development model that allows developers to build and run applications without having to manage servers. -There are still servers in serverless, but they are [abstracted](/abstraction/) away from app development. +While servers do still exist within the serverless paradigm, they are [abstracted](/abstraction/) away from the application development process. A cloud provider handles the routine work of provisioning, maintaining, and [scaling](/scalability/) the server infrastructure. -Developers can simply package their code in [containers](/container/) for deployment. +Developers can conveniently package their code into [containers](/container/) for deployment. Once deployed, serverless apps respond to demand and automatically scale up and down as needed. Serverless offerings from public cloud providers are usually metered on-demand through an event-driven execution model. -As a result, when a serverless function is sitting idle, it doesn’t cost anything. +Consequently, when a serverless function is in an idle state, there are no associated costs. ## Problem it addresses @@ -22,11 +20,11 @@ Under a standard [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-servi users pre-purchase units of capacity, meaning you pay a public cloud provider for always-on server components to run your apps. It’s the user’s responsibility to scale up server capacity during times of high demand and to scale down when that capacity is no longer needed. -The cloud infrastructure necessary to run an app is active even when the app isn’t being used. +The cloud infrastructure required to operate an application remains active even when the application is not in use. ## How it helps -With serverless architecture, by contrast, apps are launched only as needed. +Contrasting with traditional approaches, the serverless architecture launches applications only when they are needed. When an event triggers app code to run, the public cloud provider dynamically allocates resources for that code. The user stops paying when the code finishes executing. In addition to the cost and efficiency benefits, diff --git a/content/en/service-discovery.md b/content/en/service-discovery.md index ecdfcbe79a..6a3cf46a09 100644 --- a/content/en/service-discovery.md +++ b/content/en/service-discovery.md @@ -5,8 +5,6 @@ category: concept tags: ["networking", "", ""] --- -## What it is - Service discovery is the process of finding individual instances that make up a service. A service discovery tool keeps track of the various nodes or endpoints that make up a service. diff --git a/content/en/service-mesh.md b/content/en/service-mesh.md index 46874021d1..31309f07ce 100644 --- a/content/en/service-mesh.md +++ b/content/en/service-mesh.md @@ -5,8 +5,6 @@ category: technology tags: ["networking", "", ""] --- -## What it is - In a [microservices](/microservices/) world, apps are broken down into multiple smaller [services](/service/) that communicate over a network. Just like your wifi network, computer networks are intrinsically unreliable, hackable, and often slow. Service meshes address this new set of challenges by managing traffic (i.e., communication) between services and diff --git a/content/en/service-proxy.md b/content/en/service-proxy.md index 9dabf5eb97..ed5ba6d9ed 100644 --- a/content/en/service-proxy.md +++ b/content/en/service-proxy.md @@ -5,8 +5,6 @@ category: technology tags: ["networking", "", ""] --- -## What it is - A service proxy intercepts traffic to or from a given [service](/service/), applies some logic to it, then forwards that traffic to another service. It essentially acts as a “go-between” that collects information about network traffic and/or applies rules to it. diff --git a/content/en/shift-left.md b/content/en/shift-left.md index 85ca1ceada..2f56f7919b 100644 --- a/content/en/shift-left.md +++ b/content/en/shift-left.md @@ -5,8 +5,6 @@ category: Concept tags: ["methodology", "", ""] --- -## What it is - Left in Shift Left refers to earlier stages in a software development lifecycle, thinking of the lifecycle as a line where stages are executed from left to right. Shift Left is the practice of implementing tests, security, or other development practices diff --git a/content/en/site-reliability-engineering.md b/content/en/site-reliability-engineering.md index e70d1a2324..1753197f45 100644 --- a/content/en/site-reliability-engineering.md +++ b/content/en/site-reliability-engineering.md @@ -5,8 +5,6 @@ category: concept tags: ["methodology", "", ""] --- -## What it is - Site Reliability Engineering or SRE is a discipline that combines operations and software engineering. The latter is applied to infrastructure and operations problems, specifically. Meaning, instead of building product features, Site Reliability Engineers build systems to run applications. @@ -16,7 +14,7 @@ SRE ensures that code running in production works properly. ## Problem it addresses Ensuring applications run [reliably](/reliability/) requires multiple capabilities, -from performance monitoring, alerting, [debugging](/debugging/) to troubleshooting. +from performance monitoring, alerting, debugging to troubleshooting. Without these, system operators can only react to problems vs. proactively working towards avoiding them — downtime only becomes a matter of time. diff --git a/content/en/software-as-a-service.md b/content/en/software-as-a-service.md index 5258cdda48..2dbe79e80e 100644 --- a/content/en/software-as-a-service.md +++ b/content/en/software-as-a-service.md @@ -6,8 +6,6 @@ draft: true tags: ["fundamental", "platform", ""] --- -## What it is - Software as a service (SaaS) allows users to connect to and use cloud-based services over the Internet. Common examples are email, calendaring, and office tools (such as Gmail, Amazon Web Services, GitHub, Slack). SaaS provides complete software solutions on a pay-as-you-go basis. diff --git a/content/en/stateful-apps.md b/content/en/stateful-apps.md index 770308b536..d4065b79c0 100644 --- a/content/en/stateful-apps.md +++ b/content/en/stateful-apps.md @@ -5,9 +5,7 @@ category: concept tags: ["fundamental", "application", ""] --- -## What it is - -When we speak of stateful (and [stateless](/stateless-apps/)) apps, +When we speak of stateful (and stateless) apps, state refers to any data the app needs to store to function as designed. Any kind of online shop that remembers your cart is a stateful app for example. diff --git a/content/en/stateless-apps.md b/content/en/stateless-apps.md index fe9fa3fb79..ea364457a2 100644 --- a/content/en/stateless-apps.md +++ b/content/en/stateless-apps.md @@ -5,8 +5,6 @@ category: technology tags: ["fundamental", "application", ""] --- -## What it is - A stateless application doesn’t save any client session (state) data on the server where the application lives. Each session is carried out as if it was the first time and responses are not dependent upon data from a previous session and provides functionality to use print services, CDN (Content Delivery Network) or the Web Servers diff --git a/content/en/style-guide/_index.md b/content/en/style-guide/_index.md index ea19f5f6c1..bab8303e7b 100644 --- a/content/en/style-guide/_index.md +++ b/content/en/style-guide/_index.md @@ -7,7 +7,7 @@ menu: weight: 10 --- -This style guide will help you understand the Glossary audience, definition structure, required level of detail, and how to maintain a consistent style. +This style guide will help you understand the Glossary audience, definition structure, required level of detail, and how to keep a consistent style. The Cloud Native Glossary follows the [default style guide](https://github.com/cncf/foundation/blob/master/style-guide.md) of the CNCF repository. Additionally, it follows the following rules: @@ -25,19 +25,19 @@ Additionally, it follows the following rules: ## Audience -The Glossary is written for a technical AND non-technical audience. -Please ensure definitions are explained in simple terms and don’t assume technical knowledge. More do that below under Definition. +The Glossary is written for technical *and* non-technical audiences. +Please explain definitions in simple terms, and don’t assume technical knowledge. More about this is below in [Definition](#definition). -## Minimal Viable Definition +## Minimum viable definition -Our goal is to make it really easy for anyone to understand cloud native terms. +We aim to make it easy for anyone to understand cloud native terms. As such, we focus on simplicity. -That means using clear and simple language with examples anyone who uses technology can relate to (more to that below) but also providing a *minimal viable definition*, at least from a technical point of view. -We don't want to save on context and examples — after all, those things help the reader understand the concept — but if a technical detail is not needed to understand it, we'll skip it. -The goal is not to overcomplicate things. Once the reader understands the basic concept, other resources will help them dig deeper. +Use clear, simple language with examples anyone who uses technology can relate to while also providing a *minimum viable definition*, at least from a technical point of view. +We don't want to save on context and examples—after all, those things help the reader understand the concept—but if a technical detail is not needed to understand it, we'll skip it. +The goal is not to overcomplicate things. Once the reader understands the basic idea, other resources will help them dig deeper. That part is out of the scope of this Glossary. -## Definition Template +## Definition template Each glossary term is stored in a markdown file and follows this template: @@ -48,7 +48,6 @@ status: category: --- -## What it is A quick summary of the technology or concept. @@ -72,7 +71,7 @@ title: Definition Template ### Status -The **status** label will come after the title label. The status label indicates whether definitions are thoroughly vetted or require more effort. +The **status** label will come after the title label. These labels indicate the amount of effort still required to complete the definition. Valid values are: @@ -80,7 +79,7 @@ Valid values are: - Feedback Appreciated - Not Started -You can always open an issue against a completed definition. While a definition is in flux, its status will be changed to *Feedback Appreciated*. +You can always open an issue against a completed definition. While a definition is in flux, its status will be changed to *Feedback Appreciated*. Note that we should not localize the valid status values. ```md --- @@ -92,10 +91,10 @@ status: Feedback Appreciated The **tag** label follows the status label. For the tags to be meaningful and thus helpful to the user, we will use them in a strict sense. -Applying too many tags will only delute its meaning. -With the exception of "fundamental," which simply indicates this term is needed to understand other cloud native concepts, most terms will likely only have one tag. +Applying too many tags will only dilute its meaning. +An exception to this is the `fundamental` tag, which indicates this term is needed to understand other cloud native concepts; most terms will likely only have one tag. -**Note**: Please do not introduce new tags unless approved by the maintainers. When you add tags to an entry, ensure they are spelled exactly as listed below (singular, no typos). +**Note**: Please only introduce new tags if approved by the maintainers. When you add tags to an entry, ensure they are spelled exactly as listed below (singular, no typos). The current tags are: @@ -112,33 +111,33 @@ The current tags are: --- title: Definition Template status: Feedback Appreciated -tags: ["tag 1"], ["tag 2"] +tags: ["tag 1", "tag 2", ""] --- ``` ### Definition -#### Three subheadings +#### Two subheadings -The definitions for **technology** and **concept** categories contain three subheadings: +The definitions for **technology** and **concept** categories contain a quick summary and two subheadings: -- **What it is**: provide a short and clear overview of what we are talking about. +- (quick summary) provide a short and clear overview of what we are talking about. - **Problem it addresses**: focus on the problem, not the solution (that comes in the next section). - In fact, avoid mentioning the term that is defined. The problem focuses on *what* led us to need that thing. + Avoid mentioning the term that is defined. The problem focuses on *what* led us to need that thing. - **How it helps**: now, come back to the term. How does it address the problem described above? Note that **properties** don't require separate sections. A definition will suffice. -To facilitate review, please use **semantic line breaks** (one sentence per line). +Please use **semantic line breaks** (one sentence per line) to ease review. #### Quality is paramount If merged, your submission will be the official CNCF definition for that term (until someone else improves it). -Creating a term that meets the CNCF's high standards can't be rushed — quality takes time and effort. +Creating a term that meets the CNCF's high standards can't be rushed—quality takes time and effort. **Do your research**: Even if you are confident you know the term, verify you got it right. -We often use terms in organizations a certain way that may not reflect the full picture. -When you do your research, especially when you're not 100% familiar with the term, use multiple resources. +We often use terms in organizations in a certain way that may not reflect the full picture. +When researching, especially when you're not 100% familiar with the term, use multiple resources. Many definitions are one-sided, especially if provided by a vendor. The Glossary must contain vendor-neutral, globally accepted definitions. @@ -151,40 +150,40 @@ Note that we cannot link to content developed by vendors. #### Keeping it simple -The Glossary aims at **explaining complex concepts in simple words** — that is a surprisingly difficult task that will likely take multiple revisions. +The Glossary aims to **explain complex concepts in simple words**—a surprisingly difficult task that will likely take multiple revisions. Always keep the audience in mind when drafting your definition. -Avoid using industry terms and buzzwords — you'll probably catch yourself going back to them and may need to autocorrect. +Avoid using industry terms and buzzwords—you might catch yourself returning to them and may need to train yourself to look for different terms. -When appropriate, use **real-world examples** that help readers (especially non-technical ones) better understand *when* and *why* the concept you’re explaining is relevant. +When appropriate, use **real-world examples** that help readers (especially non-technical ones) better understand *when* and *why* the idea you’re explaining is relevant. When used in your definition, always **link to existing glossary terms** (only the first mention should be hyperlinked). -**Example**: take a look at the “What it is” section of the [service mesh definition](/service-mesh/). -It links back to the microservices, service, reliability, and observability definitions. +**Example**: look at the summary section of the [service mesh definition](/service-mesh/). +It links back to the definitions of microservices, service, reliability, and observability. Additionally, it uses a real-world example comparing network challenges in a microservices environment (something non-technical people can't relate to) to wifi problems (something anyone using a laptop can understand). Where possible, try to make that connection. #### Start with a Google or Word doc -We recommend starting with a Google or Word doc, letting it sit for a few days, and revisiting again. -This will allow you to catch phrases or expressions that could be worded in a simpler and more accessible way. +We recommend starting with a Google or Word doc, letting it sit for a few days, and revisiting it. +This will allow you to catch phrases or expressions that could be worded in a more straightforward and accessible way. Also, make sure to run a spellcheck before submitting a PR. -To ensure no one else submits a PR while working on a term, make sure to claim an issue (or create one) and that it is assigned to you. -More to that in the [How To Contribute](/contribute/) doc. +To ensure no one else submits a PR while working on a term, claim an issue (or create one) and request it be assigned to you. +More about that in the [How To Contribute](/contribute/) doc. -Before getting started, please read some of the published Glossary terms +Before getting started, please read some published Glossary terms to get a feeling for the level of detail and difficulty and when examples are appropriate. -## The review process: what to expect +## The review process: What to expect Please note that we are currently only three maintainers doing this in their spare time. -Occasionally, we'll be able to review terms quickly; on other occasions, it may take some time — we appreciate your patience. -If you have any questions, please get in touch with us in the #glossary Slack channel +Occasionally, we'll be able to review terms quickly; on other occasions, it may take some time—we appreciate your patience. +If you have any questions, please contact us in the #glossary Slack channel (for where and how to find it, please refer to our [How To Contribute](/contribute/) doc). Our goal is for the Glossary to be the best possible resource. Once you submit a PR, we may ask for one or more revisions. -Don't be frustrated — that is the case for many PRs. -Those backs and forth and our collaboration will ensure that your contribution becomes a truly useful definition read and referred to by readers all around the globe. +Don't get frustrated—that is the case for many PRs. +These back and forths and our collaboration will ensure that your contribution becomes a helpful definition read and referred to by readers all around the globe. diff --git a/content/en/transport-layer-security.md b/content/en/transport-layer-security.md index 2fd122fa62..e12a6d370e 100644 --- a/content/en/transport-layer-security.md +++ b/content/en/transport-layer-security.md @@ -5,8 +5,6 @@ category: Concept tags: ["security", "networking", ""] --- -## What it is - Transport Layer Security (TLS) is a protocol designed to provide increased security to communication over a network. It ensures the secure delivery of data sent over the Internet, avoiding possible monitoring and/or alteration of the data. diff --git a/content/en/version-control.md b/content/en/version-control.md index b236985263..977e514c2b 100644 --- a/content/en/version-control.md +++ b/content/en/version-control.md @@ -6,8 +6,6 @@ draft: true tags: ["methodology", "", ""] --- -## What it is - Source control (or version control) is the practice of tracking and managing changes to a document. It is a system that records changes to a file or set of files over time so that you can recall specific versions later. diff --git a/content/en/vertical-scaling.md b/content/en/vertical-scaling.md index 573fd34864..43e3bcf804 100644 --- a/content/en/vertical-scaling.md +++ b/content/en/vertical-scaling.md @@ -5,8 +5,6 @@ category: Concept tags: ["infrastructure", "", ""] --- -## What it is - Vertical scaling, also known as "scaling up and down", is a technique where a system's capacity is increased by adding CPU and memory to individual [nodes](/nodes/) as the workload increases. Let's say, you have a computer of 4GB RAM and want to increase its capacity to 16GB RAM, @@ -18,7 +16,7 @@ scaling it vertically means switching to a 16GB RAM system. As demand for an application grows beyond the current capacity of that application instance, we need to find a way to scale (add capacity to) the system. We can either add more compute resources to existing nodes (vertical scaling) -or more nodes to the system ([horizontal scaling](/horizontal-scaling/)). +or more nodes to the system (horizontal scaling). [Scalability](/scalability/) contributes to competitiveness, efficiency, reputation, and quality. ## How it helps diff --git a/content/en/virtual-machine.md b/content/en/virtual-machine.md index 4bf854f535..1f27483723 100644 --- a/content/en/virtual-machine.md +++ b/content/en/virtual-machine.md @@ -5,8 +5,6 @@ category: Technology tags: ["fundamental", "infrastructure", ""] --- -## What it is - A virtual machine (VM) is a computer and its operating system that is not bound to a particular piece of hardware. VMs rely on [virtualization](/virtualization/) to carve a single physical computer into multiple virtual computers. @@ -15,7 +13,6 @@ easily create and destroy VMs without impacting the underlying hardware. ## Problem it addresses -Virtual machines take advantage of virtualization. When a [bare metal](/bare-metal-machine/) machine is bound to a single operating system, how well the machine's resources can be used is somewhat limited. Also, when an operating system is bound to a single physical machine, diff --git a/content/en/virtualization.md b/content/en/virtualization.md index abf7ba25d8..708b5b1a31 100644 --- a/content/en/virtualization.md +++ b/content/en/virtualization.md @@ -5,8 +5,6 @@ category: technology tags: ["fundamental", "infrastructure", "methodology"] --- -## What it is - Virtualization, in the context of cloud native computing, refers to the process of taking a physical computer, sometimes called a server, and allowing it to run multiple isolated operating systems. @@ -28,4 +26,3 @@ whilst still being isolated from each other for security. Apps running on virtual machines have no awareness that they are sharing a physical computer. Virtualization also allows the users of the datacenter to spin up a new "computer" (aka a VM) in minutes without worrying about the physical constraints of adding a new computer to a datacenter. -VMs also enable users to speed up the time to get a new virtual computer. diff --git a/content/en/zero-trust-architecture.md b/content/en/zero-trust-architecture.md index 3d6d606fae..b00cbf489d 100644 --- a/content/en/zero-trust-architecture.md +++ b/content/en/zero-trust-architecture.md @@ -5,8 +5,6 @@ category: Concept tags: ["security", "", ""] --- -## What it is - Zero trust architecture prescribes to an approach to the design and implementation of IT systems where trust is completely removed. The core principle being "never trust, always verify", devices or systems themselves, diff --git a/content/es/blue-green-deployment.md b/content/es/blue-green-deployment.md index a24ee157b8..1f74ff98b1 100644 --- a/content/es/blue-green-deployment.md +++ b/content/es/blue-green-deployment.md @@ -11,7 +11,7 @@ El despliegue Blue green es una estrategia para actualizar los sistemas informÃĄ El operador mantiene dos entornos, llamados "blue" y "green". Uno sirve el trÃĄfico de producciÃŗn (la versiÃŗn que todos los usuarios usan actualmente), mientras que el otro estÃĄ actualizado. Una vez que las pruebas han concluido en el entorno inactivo (green), -el trÃĄfico de producciÃŗn se cambia (a menudo mediante el uso de un [balanceador de cargas](/es/load-balancer/). +el trÃĄfico de producciÃŗn se cambia (a menudo mediante el uso de un balanceador de cargas. Ten en cuenta que el despliegue blue-green usualmente significa cambiar los entornos por completo, comprendiendo muchos [servicios](/es/service/), todos a la vez. Confusamente, algunas veces el tÊrmino se utiliza para referirse a servicios dentro de un sistema. Para evitar esta ambigÃŧedad, se prefiere el tÊrmino "despliegue con tiempo de inactividad cero" cuando se refiere a componentes individuales. diff --git a/content/es/containerization.md b/content/es/containerization.md index fd083de294..cd1863989d 100644 --- a/content/es/containerization.md +++ b/content/es/containerization.md @@ -7,7 +7,7 @@ tags: ["application", "", ""] ## ÂŋQuÊ es? -La contenerizaciÃŗn es el proceso que consiste en empaquetar una aplicaciÃŗn y sus dependencias en una [imagen de contenedor](/es/container-image/). +La contenerizaciÃŗn es el proceso que consiste en empaquetar una aplicaciÃŗn y sus dependencias en una imagen de contenedor. La construcciÃŗn del contenedor requiere del seguimiento del estÃĄndar [Open Container Initiative](https://opencontainers.org) (OCI). Mientras la salida de este proceso sea un contenedor de imagen que se adhiera a dicho estÃĄndar, la herramienta de contenerizaciÃŗn usada no es relevante. diff --git a/content/es/multitenancy.md b/content/es/multitenancy.md index d08d6c5447..7b9b9ccd81 100644 --- a/content/es/multitenancy.md +++ b/content/es/multitenancy.md @@ -35,6 +35,6 @@ a los inquilinos, lo que reduce significativamente el costo para los usuarios (d ## TÊrminos relacionados -La multitenancy no es sinÃŗnimo de [SaaS](/software-as-a-service/), +La multitenancy no es sinÃŗnimo de SaaS, aunque es muy comÃēn que el SaaS tenga multitenancy e incluso que la funcionalidad de multitenancy sea una de sus principales ventajas. diff --git a/content/fr/_TEMPLATE.md b/content/fr/_TEMPLATE.md new file mode 100644 index 0000000000..94c1ec1b1a --- /dev/null +++ b/content/fr/_TEMPLATE.md @@ -0,0 +1,22 @@ +--- +title: Modèle de dÊfinition +status: Feedback Appreciated +category: concept +--- + + +## Ce que c'est + +Un bref descriptif de la technologie ou du concept. + +## Problème auquel il rÊpond + +Quelques lignes à propos du problème qu'il adresse. + +## Quel en est l'utilitÊ + +Quelques lignes sur comment le problème est rÊsolu. + +## Termes liÊs + +Ajouter les termes du Glossaire en relation (si applicable) diff --git a/content/fr/_index.md b/content/fr/_index.md new file mode 100755 index 0000000000..8a9988abd1 --- /dev/null +++ b/content/fr/_index.md @@ -0,0 +1,61 @@ +--- +title: "Glossaire Cloud Native" +status: Completed +--- + +# Glossaire Cloud Native + +Le Glossaire Cloud Native a pour objectif de dÊmystifier l'univers Cloud Natif, rÊputÊ pour sa complexitÊ. +Il vise à le rendre accessible aussi bien aux spÊcialistes technologiques qu'aux acteurs du monde des affaires. +Pour y parvenir, nous mettons l'accent sur la simplicitÊ (par exemple, un langage simple sans buzzwords, des exemples auxquels toute personne utilisant la technologie peut se rapporter, en laissant de côte les dÊtails inutiles). +Le Glossaire Cloud Native est un project dirigÊ par le ComitÊ Marketing de la CNCF (Business Value Subcommittee, BVS). + +

Personnes regardant une prÊsentation de la Kubecon

+ +## Contribution + +Toute personne est invitÊe à suggÊrer des changements, des ajouts, ou des amÊlioration au Glossaire Cloud Native. +Nous employons un processus dirigÊ par la communautÊ, et gouvernÊ par la CNCF, afin de dÊvelopper et d'amÊliorer ce lexique partagÊ. +Ce Glossaire fournit un plateforme indÊpendante de toute solution propriÊtaire, afin d'organiser un vocabulaire partagÊ par tous, le tout centrÊ autour des technologies Cloud Natives. +Les contributions sont les bienvenues pour tous les participants adhÊrant au principe du projet, ainsi qu'à sa charte. + +Toute personne souhaitant faire une contribution peut soumettre une Issue ou ouvrir une Pull Request sur le dÊpôt GitHub. +S'assurer avant tout de suivre le [Guide de RÊdaction](/fr/style-guide/), de lire la [Documentation de contribution](/fr/contribute/), ainsi que de rejoindre le canal [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) du Slack de la CNCF. +Il existe Êgalement un canal [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) pour ceux qui souhaitent aider à la traduction du glossaire dans leur langage natif. + +## Remerciements + +Le Glossaire Cloud Native a ÊtÊ initiÊ par le ComitÊ Marketing de la CNCF (Business Value Subcommittee) et inclue les contributions de +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/), +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk), +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/), +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/), +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca), +et bien d'autres contributeurs. +Pour la liste complète des contributeurs, se rÊfÊrer à la [Page GitHub](https://github.com/cncf/glossary/graphs/contributors). + +Ce Glossaire est maintenue par +[Seokho Son](https://www.linkedin.com/in/seokho-son/), +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/), +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/), +[Nate W.](https://www.linkedin.com/in/nate-double-u/), +and [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/). + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/), +et [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +sont des Mainteneurs ÉmÊrites, et nous leur sommes profondÊment reconnaissants pour leurs contributions inestimables au fil des annÊes. + +Enfin, la traduction et localisation française du Glossaire Cloud Native sont rÊalisÊes et maintenues par +[Christophe Sauthier](https://www.linkedin.com/in/christophesauthier/), +[Flavien Hardy](https://www.linkedin.com/in/flavien-h-93208a18b/), +[Ludovic Logiou](https://www.linkedin.com/in/ludovic-%F0%9F%92%BB-logiou-98123978/), +[StÊphane Este-Gracias](https://www.linkedin.com/in/sestegra/), +[Guillaume Bernard](https://www.linkedin.com/in/gbernardit/), +et divers contributeurs. +Pour ceux intÊressÊs à contribuer à la traduction et à la localisation du glossaire en français, un canal [#glossary-localization-french](https://cloud-native.slack.com/archives/C03JHQ02FCH) est disponible. + +## Licence + +Toute contribution de code est sous licence Apache 2.0. +La documentation est distribuÊe sous CC BY 4.0. diff --git a/content/fr/abstraction.md b/content/fr/abstraction.md new file mode 100644 index 0000000000..89245cfbc4 --- /dev/null +++ b/content/fr/abstraction.md @@ -0,0 +1,17 @@ +--- +title: Abstraction +status: Completed +category: Property +tags: ["fondamental", "", ""] +--- + +Dans le contexte informatique, une abstraction est une reprÊsentation qui masque les dÊtails spÊcifiques à un consommateur de [services](/fr/service/) (un consommateur Êtant un programme informatique ou un humain), rendant un système plus gÊnÊrique, et ainsi facilement comprÊhensible. +Le système d'exploitation de votre ordinateur portable en est un bon exemple. +Il masque tous les dÊtails du fonctionnement de votre ordinateur. +Vous n'avez pas besoin d'avoir une comprÊhension approfondie du processeur, de la mÊmoire et du fonctionnement des programmes, vous utilisez simplement le système d'exploitation et ce dernier s'occupe des dÊtails. +Tous ces dÊtails sont cachÊs sous le ÂĢ capot Âģ abstrait par le système d'exploitation. + +GÊnÊralement, les systèmes ont plusieurs couches d'abstraction. +Cela simplifie considÊrablement le dÊveloppement. +Lors de la programmation, les dÊveloppeurs construisent des composants compatibles avec une couche d'abstraction particulière et n'ont pas à se soucier de tous les dÊtails sous-jacents qui peuvent ÃĒtre très hÊtÊrogènes. +Si cela fonctionne avec la couche d'abstraction, cela fonctionne avec le système — peu importe ce qui se trouve en dessous. diff --git a/content/fr/agile-software-development.md b/content/fr/agile-software-development.md new file mode 100644 index 0000000000..e1356610b8 --- /dev/null +++ b/content/fr/agile-software-development.md @@ -0,0 +1,25 @@ +--- +title: DÊveloppement Agile de logiciels +status: Completed +category: concept +tags: ["mÊthodologie", "", ""] +--- + +## Ce que c'est + +Un ensemble de pratiques qui mettent l'accent sur les cycles de dÊveloppement itÊratifs et les Êquipes auto-organisÊes. +Contrairement aux projets dits en cascade oÚ la valeur n'est gÊnÊrÊe qu'à la toute fin du projet, +le dÊveloppement Agile de logiciels se concentre sur une livraison de valeur continue et incrÊmentale, ainsi que sur l'amÊlioration Êvolutive du processus lui-mÃĒme. + +## Problème auquel il rÊpond + +DÊfinir, communiquer et comprendre les exigences pour toutes les parties prenantes d'un projet logiciel est très difficile, voire impossible. +Pourtant, les clients veulent que leurs projets logiciels soient livrÊs à temps, respectant la qualitÊ, l'Êtendue des travaux et le budget attendus. +De par sa nature cyclique, le dÊveloppement Agile de logiciels permet une adaptation continue des exigences et une adaptation plus rapide au-delà de tous les autres facteurs par opposition aux stratÊgies en cascade. + +## Quel en est l'utilitÊ + +Le dÊveloppement Agile de logiciels contient toutes les phases des stratÊgies traditionnelles (en cascade), comme l'ingÊnierie des exigences, la planification, la mise en œuvre, la revue, les tests et la livraison. +La plus grande diffÊrence est que toute la durÊe d'un projet logiciel est dÊcoupÊe en itÊrations, qui contiennent chacune de ces phases. +Après chaque itÊration, la valeur crÊÊe peut ÃĒtre revue avec le client et les exigences peuvent ÃĒtre ajustÊes vis-à-vis de l'objectif final. +De plus, l'Êquipe de dÊveloppement rÊflÊchit aux actions à prendre afin d'amÊliorer le processus lui-mÃĒme. diff --git a/content/fr/api-gateway.md b/content/fr/api-gateway.md new file mode 100644 index 0000000000..9ea41b7d69 --- /dev/null +++ b/content/fr/api-gateway.md @@ -0,0 +1,24 @@ +--- +title: Passerelle d'API (API Gateway) +status: Completed +category: technology +tags: ["rÊseau", "", ""] +--- + +## Ce que c'est + +Une passerelle d'[API](/fr/application-programming-interface/) est un outil qui regroupe des APIs d'applications individuelles, les rendant toutes disponibles en un seul endroit. +Celà permet aux organisations de dÊplacer des fonctions clÊs, telles que l'authentification et l'autorisation ou la limitation du nombre de requÃĒtes entre applications, vers un emplacement gÊrÊ de manière centralisÊe. +Une passerelle d'API fonctionne comme une interface commune pour les consommateurs d'API (souvent externes). + +## Problème auquel il rÊpond + +Si vous mettez des APIs à la disposition de consommateurs externes, vous voudrez un point d'entrÊe unique pour gÊrer et contrôler tous les accès. +De plus, si vous devez appliquer une fonctionnalitÊ sur ces interactions, une passerelle d'API vous permettra de l'appliquer uniformÊment à tout le trafic sans nÊcessiter de modifications du code de l'application. + +## Quel en est l'utilitÊ + +En fournissant un seul point d'accès pour diverses APIs d'applications, les passerelles d'API facilitent, pour les organisations, la mise en place de logiques mÊtiers ou de sÊcuritÊ transversales dans un emplacement centralisÊ. +Elles permettent Êgalement aux consommateurs d'applications de se rendre à une adresse unique pour tous leurs besoins. +Une passerelle d'API peut simplifier les prÊoccupations opÊrationnelles telles que la sÊcuritÊ et l'[observabilitÊ](/fr/observability/) en fournissant un point d'accès unique pour les requÃĒtes vers tous les services web d'un système. +Comme toutes les requÃĒtes transitent par la passerelle d'API, celle-ci reprÊsente un endroit unique pour ajouter des fonctionnalitÊs telles que la collecte de mÊtriques, la limitation du dÊbit et l'autorisation. diff --git a/content/fr/application-programming-interface.md b/content/fr/application-programming-interface.md new file mode 100644 index 0000000000..8e9faef426 --- /dev/null +++ b/content/fr/application-programming-interface.md @@ -0,0 +1,26 @@ +--- +title: Interface de Programmation d'Application (API) +status: Completed +category: technology +tags: ["architecture", "fondamental", ""] +--- + +## Ce que c'est + +Une API est un moyen pour les programmes informatiques d'interagir entre eux. +Tout comme les humains interagissent avec un site web via une page web, une API permet aux programmes informatiques d'interagir les uns avec les autres. +Contrairement aux interactions humaines, les APIs ont des contraintes sur ce qui peut ou non leur ÃĒtre demandÊ. +Les contraintes sur leurs interactions permettent de crÊer une communication stable et fonctionnelle entre les programmes. + +## Problème auquel il rÊpond + +Au fur et à mesure que les applications deviennent plus complexes, de petites modifications du code peuvent avoir des effets drastiques sur d'autres fonctionnalitÊs. +Les applications doivent adopter une approche modulaire de leur fonctionnement si elles veulent simultanÊment croÃŽtre et maintenir leur stabilitÊ. +Sans API, il manque un cadre pour l'interaction entre les applications. +Sans un cadre partagÊ, il est difficile pour les applications de [passer à l'Êchelle](/fr/scalability/) et de s'intÊgrer. + +## Quel en est l'utilitÊ + +Les APIs permettent aux programmes informatiques ou aux applications d'interagir et de partager des informations de manière dÊfinie et comprÊhensible. +Elles sont les ÊlÊments constitutifs des applications modernes et elles offrent aux dÊveloppeurs un moyen d'intÊgrer les applications entre elles. +Lorsque vous entendez parler de [microservices](/fr/microservices-architecture/) travaillant ensemble, vous pouvez en dÊduire qu'ils interagissent via une API. diff --git a/content/fr/auto-scaling.md b/content/fr/auto-scaling.md new file mode 100644 index 0000000000..930602b992 --- /dev/null +++ b/content/fr/auto-scaling.md @@ -0,0 +1,27 @@ +--- +title: Mise à l'Êchelle automatique (Autoscaling) +status: Completed +category: property +tags: ["infrastructure", "", ""] +--- + +La mise à l'Êchelle automatique (ou autoscaling) est la capacitÊ d'un système à s'adapter automatiquement (voir [capacitÊ de mise à l'Êchelle](/fr/scalability/)), gÊnÊralement, en termes de ressources informatiques. +Avec un système permettant une mise à l'Êchelle automatique, les ressources sont automatiquement ajoutÊes en cas de besoin et peuvent ÃĒtre ajustÊes pour rÊpondre aux demandes fluctuantes des utilisateurs. +Le processus de mise à l'Êchelle automatique varie et peut ÃĒtre configurÊ pour s'adapter à diffÊrentes mÊtriques, telles que la mÊmoire ou le temps de traitement. +Les services cloud gÊrÊs sont couramment associÊs à cette fonctionnalitÊ de mise à l'Êchelle automatique, car il y existe plus d'options et de mises en œuvre disponibles que dans la plupart des dÊploiements sur site. + +Auparavant, l'infrastructure et les applications Êtaient conçues en tenant compte de l'utilisation maximale du système. +Cette architecture signifiait que beaucoup de ressources Êtaient sous-utilisÊes et inÊlastiques face à l'Êvolution de la demande des consommateurs. +L'inÊlasticitÊ entraÃŽnait des coÃģts plus ÊlevÊs pour l'organisation et des pertes d'activitÊ causÊes par les pannes dues à une demande excessive. + +En exploitant le cloud, la [virtualisation](/fr/virtualization/) et la [conteneurisation](/fr/containerization/) des applications et leurs dÊpendances, +les organisations peuvent dÊvelopper des applications qui se mettent à l'Êchelle selon les demandes des utilisateurs. +Elles peuvent surveiller les applications et les mettre à l'Êchelle automatiquement, offrant ainsi une expÊrience utilisateur optimale. +Prenons l'exemple de l'augmentation du nombre de spectateurs que Netflix connaÃŽt chaque vendredi soir. +La mise à l'Êchelle automatique signifie ajouter dynamiquement plus de ressources: par exemple, +en augmentant le nombre de serveurs permettant une diffusion de plus de vidÊos et en rÊduisant l'Êchelle une fois la consommation revenue a la normale. + +## Termes liÊs + +* [Mise à l'Êchelle horizontale (Horizontal Scaling)](/fr/horizontal-scaling/) +* [Mise à l'Êchelle verticale (Vertical Scaling)](/fr/vertical-scaling/) diff --git a/content/fr/bare-metal-machine.md b/content/fr/bare-metal-machine.md new file mode 100644 index 0000000000..66a8766284 --- /dev/null +++ b/content/fr/bare-metal-machine.md @@ -0,0 +1,33 @@ +--- +title: Machine Physique (Bare Metal) +status: Completed +category: technology +tags: ["infrastructure", "", ""] +--- + +## Ce que c'est + +Une machine physique, ou machine bare metal, fait rÊfÊrence à un ordinateur physique, plus prÊcisÊment à un serveur, qui possède un et un seul système d'exploitation. +En informatique moderne, la plupart des serveurs sont des [machines virtuelles](/fr/virtual-machine/), il est donc important de faire cette distinction. +Un serveur physique est gÊnÊralement un ordinateur assez gros qui intègre du matÊriel puissant. +L'installation d'un système d'exploitation et l'exÊcution d'applications directement sur ce matÊriel physique, +sans [virtualisation](/fr/virtualization/), est ce que l'on appelle une machine physique, ou machine bare metal. + +## Problème auquel il rÊpond + +Associer un système d'exploitation à un ordinateur physique est le modèle original de l'informatique. +Toutes les ressources de l'ordinateur physique sont disponibles directement pour le système d'exploitation et sans couche de virtualisation prÊsente, aucune latence n'est induite par la traduction des instructions du système d'exploitation vers le matÊriel. + +## Quel en est l'utilitÊ + +En dÊdiant toutes les ressources de calcul d'un ordinateur à un seul système d'exploitation, +vous fournissez thÊoriquement les meilleures performances possibles au système d'exploitation. +Si vous devez exÊcuter une charge de travail qui doit avoir un accès extrÃĒmement rapide aux ressources matÊrielles, +une machine physique peut ÃĒtre la solution adÊquate. + +Dans le contexte des [applications Cloud Natives](/fr/cloud-native-apps/), +vous envisagez gÊnÊralement les performances en termes de [mise à l'Êchelle](/fr/scalability/), pour traiter un grand nombre d'ÊvÊnements simultanÊs. +Vous pouvez utiliser pour cela la [mise à l'Êchelle horizontale](/fr/horizontal-scaling/) (ajout de plus de machines pour augmenter la capacitÊ de traitement). +Mais, certaines charges de travail peuvent nÊcessiter une [mise à l'Êchelle verticale](/fr/vertical-scaling/) (ajouter plus de puissance à une machine existante) +et/ou une rÊponse extrÃĒmement rapide du matÊriel. Dans ce cas, une machine physique est plus adaptÊe. +Les machines physiques permettent Êgalement des rÊglages avancÊs au niveau du matÊriel physique et Êventuellement des pilotes matÊriels pour vous aider à accomplir votre tÃĸche. diff --git a/content/fr/cloud-computing.md b/content/fr/cloud-computing.md new file mode 100644 index 0000000000..779d1140f3 --- /dev/null +++ b/content/fr/cloud-computing.md @@ -0,0 +1,29 @@ +--- +title: Cloud Computing +status: Completed +category: concept +tags: ["infrastructure", "fondamental", ""] +--- + +## Ce que c'est + +Le cloud computing, ou informatique en nuage, ou encore infonuagique au QuÊbec, offre des ressources informatiques telles que de la puissance de calcul, +du rÊseau et de l'espace de stockage à la demande sur Internet, permettant aux utilisateurs d'accÊder à des ressources informatiques +situÊes dans un emplacement physique distant. Nous diffÊrencions gÊnÊralement le cloud privÊ du cloud public, +suivant si l'infrastructure cloud est exclusivement dÊdiÊe à une organisation, ou mutualisÊe et ouverte au public. + +## Problème auquel il rÊpond + +Les organisations avaient traditionnellement deux solutions lorsqu'elles voulaient accroÃŽtre leur capacitÊ de calcul. +Elles pouvaient soit acquÊrir, financer et concevoir de (nouvelles) installations pour hÊberger leurs serveurs physiques et leur rÊseau, +soit Êtendre et entretenir celles qui existaient dÊjà. Le cloud computing rÊsout ce dilemme +en permettant aux organisations d'externaliser une partie de leurs besoins informatiques. + +## Quel en est l'utilitÊ + +Les fournisseurs de cloud permettent aux organisations de louer des ressources informatiques à la demande et de payer à l'utilisation, offrant deux avantages majeurs. +Premièrement, les organisations peuvent se concentrer sur leur produit ou service sans avoir à attendre, +planifier et dÊpenser des ressources pour une nouvelle infrastructure physique. +Et deuxièmement, elles peuvent simplement rÊaliser une [mise à l'Êchelle](/fr/scalability/) de leur infrastructure à la demande, en fonctions de leurs besoins. +Le cloud computing permet aux organisations de disposer de l'infrastructure nÊcessaire, en grande ou en petite quantitÊ. + diff --git a/content/fr/cloud-native-apps.md b/content/fr/cloud-native-apps.md new file mode 100644 index 0000000000..681d9437ba --- /dev/null +++ b/content/fr/cloud-native-apps.md @@ -0,0 +1,32 @@ +--- +title: Applications Cloud Natives +status: Completed +category: concept +tags: ["application", "fondamental", ""] +--- + +## Ce que c'est + +Les applications Cloud Natives sont des applications conçues pour tirer avantage des innovations du [cloud computing](/fr/cloud-computing/). +Ces applications s'intègrent facilement avec leurs architectures cloud respectives, en tirant avantage des ressources proposÊes par le Cloud et de leur capacitÊ de [mise à l'Êchelle](/fr/scalability/). +Ce terme fait aussi rÊfÊrence aux applications qui tirent avantage d'infrastructure pilotÊe par le cloud computing. +Aujourd'hui, les applications Cloud Natives incluent les applications qui fonctionnent dans le centre de donnÊes des fournisseurs de cloud ainsi que les applications qui tournent sur des plateformes hÊbergÊes dans les centres de donnÊes internes aux organisations. + +## Problème auquel il rÊpond + +Traditionnellement, les environnements hÊbergÊs dans des centres de donnÊes classiques fournissent des serveurs sur mesure. +Chaque centre de donnÊes dispose de services qui [associent Êtroitement ](/fr/tightly-coupled-architectures/) les applications à des environnements spÊcifiques, qui se basent souvent sur des infrastructures dÊployÊes à la main, par exemple des [machines virtuelles](/fr/virtual-machine/) et des services. Cela contraint les dÊveloppeurs et leurs applications à un dÊploiement dans ce centre de donnÊes spÊcifique. +Les applications qui n'ont pas ÊtÊ conçues pour tirer avantage des environnements Cloud ne pourront pas bÊnÊficier de ses avantages tels que la rÊsilience et la mise à l'Êchelle. +Par exemple, les applications nÊcessitant une intervention manuelle pour dÊmarrer correctement ne pourront pas se mettre à l'Êchelle automatiquement ou automatiquement redÊmarrÊes en cas d'erreur. + +## Quel en est l'utilitÊ + +Bien qu'il n'y ait pas de solution miracle pour qu'une application soit dÊfinie comme Cloud Native, les applications +Cloud Natives prÊsentent des points en commun. +Les applications Cloud Natives sont rÊsilientes, elles sont gÊrables et tirent profit de l'ensemble des services Cloud oÚ elles +sont dÊployÊes. +De nombreux services Cloud mettent à disposition un important niveau d'[observabilitÊ](/fr/observability/), permettant aux utilisateurs +de dÊtecter et de rÊgler les problèmes avant qu'ils ne deviennent plus importants. +CombinÊ à une automatisation robuste, elles permettent aux ingÊnieurs de faire des changements à fort impact de manière frÊquente et prÊvisible avec un minimum d'effort. + + diff --git a/content/fr/cloud-native-tech.md b/content/fr/cloud-native-tech.md new file mode 100644 index 0000000000..501c83fb53 --- /dev/null +++ b/content/fr/cloud-native-tech.md @@ -0,0 +1,31 @@ +--- +title: Technologies Cloud Natives +status: Completed +category: Concept +tags: ["fondamental", "", ""] +--- + +## Ce que c'est + +Les technologies Cloud Natives, aussi rÊfÊrencÊes comme la pile des technologies Cloud Natives, sont les technologies +utilisÊes pour construire des [applications Cloud Natives](/fr/cloud-native-apps/). +Ces technologies permettent aux organisations de dÊvelopper des applications capables de se mettre à l'Êchelle dans des environnements +modernes et dynamiques tels que les clouds publics, privÊs et hybrides. +Tout en tirant pleinement parti des avantages du [cloud computing](/fr/cloud-computing/). +Elles sont conçues dès le dÊpart pour exploiter les capacitÊs du cloud computing ainsi que des conteneurs, des service meshes, des micro-services. Les infrastructures immuables illustrent cette approche. + +## Problème auquel il rÊpond + +Il y a diffÊrentes catÊgories technologiques qui vont rÊpondre à une variÊtÊ de dÊfis. +Si vous regardez le [CNCF Cloud Native Landscape](https://landscape.cncf.io/), vous verrez combien +de domaines diffÊrents il touche. +Mais à un niveau ÊlevÊ, ils relèvent un ensemble de dÊfis important : +Les inconvÊnients des modèles d'exploitation informatiques traditionnels. +Les dÊfis incluent les difficultÊs à crÊer des applications Êvolutives, tolÊrantes aux pannes et qui sont +capable de se rÊparer toute seule. Il adresse Êgalement l'utilisation inefficace de ressources entre autres. + +## Quel en est l'utilitÊ + +Bien que chaque technologie rÊponde à un problème très spÊcifique, +en tant que groupe, les technologies Cloud Natives permettent de crÊer des systèmes faiblement couplÊs qui sont rÊsilients, gÊrables et observables.. +CombinÊ à une automatisation robuste, elles permettent aux ingÊnieurs de faire des changements à fort impact de manière frÊquente et prÊvisible avec un minimum d'effort. diff --git a/content/fr/cluster.md b/content/fr/cluster.md new file mode 100644 index 0000000000..ced7e68ff9 --- /dev/null +++ b/content/fr/cluster.md @@ -0,0 +1,30 @@ +--- +title: Cluster +status: Completed +category: Concept +tags: ["infrastructure", "fondamental", ""] +--- + +## Ce que c'est + +Un cluster est un groupe d'ordinateurs ou d'applications qui fonctionnent ensemble dans un but commun. +Dans un contexte Cloud Native, le terme est souvent appliquÊ à [Kubernetes](/fr/kubernetes/). +Un cluster Kubernetes est un ensemble de services (ou de charges de travail) qui s'exÊcutent dans leurs propres conteneurs, souvent sur des machines diffÊrentes. +L'ensemble de tous ces services [conteneurisÊs](/fr/containerization/), connectÊs au travers du rÊseau, reprÊsente un cluster. + +## Problème auquel il rÊpond + +Un logiciel qui s'exÊcute sur un seul ordinateur reprÊsente un point de dÊfaillance unique +— si cet ordinateur tombe en panne, ou si accidentellement quelqu'un dÊbranche le cÃĸble d'alimentation, +alors un système critique pourrait ÃĒtre mis hors-ligne. +C'est pourquoi gÊnÊralement les logiciels modernes sont souvent construits sous forme d'[applications distribuÊes](/fr/distributed-apps/), regroupÊes ensemble comme un cluster. + +## Quel en est l'utilitÊ + +Les applications rÊparties en cluster s'exÊcutent sur plusieurs machines, Êliminant le point de dÊfaillance unique. +Cependant, fabriquer des systèmes distribuÊs est vraiment difficile. +Dans les fait, c'est une discipline informatique à part entière. +Le besoin en systèmes globaux et les annÊes d'essais et d'erreurs ont menÊ au dÊveloppement d'un nouveau genre de pile technique: +[technologies Cloud Natives](/fr/cloud-native-tech/). +Ces nouvelles technologies sont les blocs de construction qui facilitent l'exploitation et la crÊation de systèmes distribuÊs. + diff --git a/content/fr/container-orchestration.md b/content/fr/container-orchestration.md new file mode 100644 index 0000000000..7c4073e43a --- /dev/null +++ b/content/fr/container-orchestration.md @@ -0,0 +1,24 @@ +--- +title: Orchestration de Conteneurs +status: Completed +category: Concept +--- + +## Ce que c'est + +L'orchestration de [Conteneurs](/fr/container/) fait rÊfÊrence à la gestion et à l'automatisation du cycle de vie d'applications conteneurisÊes au sein d'environnements dynamiques. +RÊalisÊe à l'aide d'un orchestrateur de conteneurs (la plupart du temps, [Kubernetes](/fr/kubernetes)), elle permet les dÊploiements, le passage à l'Êchelle (automatique), (l'auto-)remÊdiation et le monitoring. +L'orchestration est une mÊtaphore: +L'outil d'orchestration dirige les conteneurs tel un chef d'orchestre, s'assurant que chaque conteneur (ou musicien) fait ce qu'il doit faire. + +## Problème auquel il rÊpond + +GÊrer manuellement des [microservices](/fr/microservices-architecture), la sÊcuritÊ, et la communication rÊseaux à grande Êchelle — et des [systèmes distribuÊs](/fr/distributed-systems) en gÊnÊral — est compliquÊ, pour ne pas dire impossible. +L'orchestration de conteneurs permet aux utilisateurs d'automatiser toutes ces tÃĸches de gestion. + +## Quelle en est l'utilitÊ + +Les outils d'orchestration de conteneurs permettent aux utilisateurs de dÊterminer l'Êtat d'un système. +Tout d'abord, vous dÊclarez tel qu'il devrait ÃĒtre (i.e. x conteneurs, y pods, etc...). +L'outil d'orchestration va ensuite automatiquement surveiller l'infrastructure et la corriger si son Êtat dÊvie de l'Êtat dÊclarÊ (i.e. ajouter un nouveau conteneur si un autre est tombÊ en panne). +Cette automatisation simplifie nombre des tÃĸches complexes et hautement manuelles qui sont rÊalisÊes autrement par les Êquipes d'ingÊnieurie, comme l'approvisionnement, le dÊploiement, la scalabilitÊ (vers le haut ou le bas), la rÊpartition de charge parmi d'autres activitÊs. diff --git a/content/fr/container.md b/content/fr/container.md new file mode 100644 index 0000000000..76ced13b29 --- /dev/null +++ b/content/fr/container.md @@ -0,0 +1,32 @@ +--- +title: Conteneurs +status: Completed +category: technology +tags: ["application", "fondamental", ""] +--- + +## Ce que c'est + +Un conteneur est un processus qui fonctionne avec des contraintes de ressources et de capacitÊs gÊrÊes par le système d'exploitation d'un ordinateur. +Les fichiers accessibles au processus du conteneur sont regroupÊs dans une image de conteneur. +Les conteneurs sont exÊcutÊs les uns à côtÊ des autres sur la mÃĒme machine, +mais gÊnÊralement le système d'exploitation empÃĒche les processus de conteneurs diffÊrents d'interagir les uns avec les autres. + +## Problème auquel il rÊpond + +Avant que les conteneurs ne soient disponibles, des machines dÊdiÊes Êtaient nÊcessaires pour faire fonctionner des applications. +Chaque machine nÊcessitait son propre système d'exploitation, qui utilisait du CPU, de la mÊmoire et de l'espace disque, +tout cela pour faire fonctionner une simple application. +De plus, la maintenance, la mise à jour et le lancement d'un système d'exploitation sont des sources de travail en plus. + +## Quel en est l'utilitÊ + +Les conteneurs partagent le mÃĒme système d'exploitation et ses ressources machine, +et se partagent donc la charge additionnelle des ressources dues au système d'exploitation, ce qui permet un usage efficace de la machine physique. +Cette possibilitÊ est uniquement offerte, car les conteneurs sont habituellement limitÊs dans leurs interactions mutuelles. +Ceci permet de faire fonctionner beaucoup plus d'applications sur la mÃĒme machine physique. + +Il y a cependant des limitations. +Étant donnÊ que les conteneurs partagent le mÃĒme système d'exploitation, les processus peuvent ÃĒtre considÊrÊs moins sÊcurisÊs que leurs alternatives. +Les conteneurs nÊcessitent Êgalement des limites sur les ressources partagÊes. +Pour garantir les ressources, les administrateurs doivent contraindre et limiter l'utilisation de la mÊmoire et du CPU afin de ne pas impacter les performances des autres applications. diff --git a/content/fr/containerization.md b/content/fr/containerization.md new file mode 100644 index 0000000000..8f753d7473 --- /dev/null +++ b/content/fr/containerization.md @@ -0,0 +1,31 @@ +--- +title: Conteneurisation +status: Completed +category: Technology +tags: ["application", "", ""] +--- + +## Ce que c'est + +La conteneurisation est l'action de regrouper une application et ses dÊpendances dans une image de conteneur. +Le processus de construction du conteneur nÊcessite de respecter le standard de l'[Open Container Initiative](https://opencontainers.org) (OCI). +Du moment que le rÊsultat est une image qui respecte ce standard, l'outil de conteneurisation qui sera utilisÊ n'a pas d'importance. + +## Problème auquel il rÊpond + +Avant que les conteneurs ne se rÊpandent, les organisations s'appuyaient sur les machines virtuelles (VMs) pour orchestrer diffÊrentes applications au sein d'une unique [machine physique](/fr/bare-metal-machine/). +Les VMs sont sensiblement plus grosses que les conteneurs et nÊcessitent un hyperviseur pour fonctionner. +À cause du stockage, des sauvegardes et du transfert de ces gros modèles de VM, la crÊation des modèles de VM est Êgalement longue. +De plus, les VMs peuvent souffrir d'une dÊrive de configuration ce qui enfreint le principe de l'[immuabilitÊ](/fr/immutable-infrastructure/). + +## Quel en est l'utilitÊ + +Les images de conteneurs sont lÊgères (par opposition aux VM traditionnelles) et +le processus de conteneurisation nÊcessite un fichier qui liste les dÊpendances. +Ce fichier peut ÃĒtre versionnÊ et la construction automatisÊe, permettant +à une organisation de se concentrer sur d'autres prioritÊs pendant que +le processus automatisÊ va se charger de la construction. +Une image de conteneur est stockÊe sous un identifiant unique qui est liÊ à +son contenu et sa configuration exacte. +Étant donnÊ que les conteneurs sont instanciÊs et rÊ-instanciÊs, ils sont toujours +rÊinitialisÊs à leur Êtat initial ce qui Êlimine toute dÊrive de configuration. diff --git a/content/fr/contribute/_index.md b/content/fr/contribute/_index.md new file mode 100644 index 0000000000..60c0ce9c6c --- /dev/null +++ b/content/fr/contribute/_index.md @@ -0,0 +1,175 @@ +--- +title: Comment contribuer +toc_hide: true +menu: + main: + weight: 10 +--- + +Le contenu du glossaire Cloud Native est stockÊ dans [ce repos Github](https://github.com/cncf/glossary) oÚ vous trouverez une liste d'[issues](https://github.com/cncf/glossary/issues),[PRs](https://github.com/cncf/glossary/pulls), et [discussions](https://github.com/cncf/glossary/discussions) à propos du glossaire. + +Vous pouvez contribuer de 4 façons : + +1) [Travailler sur une issue existante](#work-on-an-existing-issue) +2) [Proposer un nouveau termes](#propose-new-terms) +3) [En mettre à jour un existant](#update-an-existing-term) +4) [Aider à traduire le glossaire](#help-translate-the-glossary) + +## Rejoindre la communautÊ du glossaire ! {#join-the-glossary-community} +Envisager de rejoindre la rÊunion mensuelle du groupe de travail du glossaire si vous souhaitez contribuer de manière rÊgulière. +Les dÊtails de la rÊunion peuvent ÃĒtre trouvÊs dans le [calendrier de la CNCF](https://www.cncf.io/calendar/). +Vous pouvez aussi entrer en contact avec les mainteneurs et les contributeurs de notre [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) sur le Slack de la CNCF - Nous aimerions beaucoup vous rencontrer! + + +## Travailler sur une issue existante {#work-on-an-existing-issue} + +Aller sur [Glossary GitHub repo issues](https://github.com/cncf/glossary/issues). +Ici, vous trouverez une liste de toutes les issues. Vous pouvez les filtrer par label (e.g. English language, help needed, good first issue). + +Un compte Github sera nÊcessaire. + +![Issue et labels](/images/how-to/issue-and-labels.png) + +Faites en sorte qu'un terme qui vous intÊresse ne soit pas dÊjà attribuÊ à quelqu'un d'autre. +Ici, vous pourrez voir que les 3 premiers termes disponibles alors que le suivant est dÊjà attribuÊ. + + +![AssignÊ un termes](/images/how-to/howto-04.png) + +Une fois que vous avez trouvÊ le terme sur lequel vous voulez travailler, dites-le dans l'issue. Cliquez dessus et rajouter un commentaire. + + +![S'assigner une issue](/images/how-to/claiming-an-issue.png) + +Additionnellement, merci de rejoindre le channel Slack [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) et de faire savoir aux mainteneurs que vous avez crÊÊ une issue pour un terme (idÊalement, en mentionnant, _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_, et/ou _@iamnoah_ pour ÃĒtre sÃģr qu'il ne passe pas à côtÊ). + +Vous pouvez uniquement proposer un terme à la fois. + +Si vous voulez travailler sur plusieurs termes, merci d'en finir un avant d'en proposer un nouveau. + +Une fois qu'il vous a ÊtÊ assignÊ, vous pouvez commencer à travailler dessus. +Pour les Êtapes suivantes, merci de prendre connaissance de la section [Proposer un nouveau terme (crÊer une PR)](#submitting-a-new-term). + +## Proposer un nouveau terme {#propose-new-terms} + +Vous pouvez proposer un nouveau terme à la communautÊ ou crÊer vous-mÃĒme la dÊfinition de ce terme. +Dans les deux cas, vous commencerez par crÊer une issue. +Il est à noter que les termes doivent ÃĒtre en accord avec le [CNCF's Cloud Native definition](https://github.com/cncf/toc/blob/main/DEFINITION.md). +Les seules exceptions sont les termes fondamentaux nÊcessaires pour comprendre les concepts Cloud Native. + +Ci-après, un guide Êtape par Êtape pour ceux et celles qui ne sont pas familier avec Github +**Si vous avez un compte GitHub Pro**, merci de vÊrifier que vous utilisez nos modèles d'issue, +une convention de nommage appropriÊe, rÊclamÊ une PR sur Slack (autrement on pourrait l'avoir ratÊ), et oÚ trouver les modèles de fichier. +Et merci de lire le [Style Guide](/fr/style-guide/) avant de commencer - Merci! + +### CrÊer une issue {#creating-an-issue} + +Aller sur les issues du repos [Glossary](https://github.com/cncf/glossary/issues) et cliquer sur "New issue". + +![issues](/images/how-to/howto-01.png) + +Vous verrez plusieurs modèles. Pour proposer un nouveau terme en Français sÊlectionner "Request to add a new term (Optional:Non-English)". + + +![templates](/images/how-to/english-issue-template.jpg) + +Ajouter le mot que vous suggÊrez, rÊpondez aux deux questions d'en dessous, cocher la case et cliquer sur "Submit new issue". +Si vous souhaitez juste proposer un nouveau terme, vous pouvez vous arrÃĒter là! Pour travailler dessus suivez les Êtapes d'après. + + +### CatÊgoriser votre issue {#triaging-your-issue} + +Ensuite, les mainteneurs vont catÊgoriser le ticket. +Cela veut dire qu'ils vont Êvaluer si votre terme peut ÃĒtre prÊsent dans le glossaire (Il est à noter, que tous les termes ne sont pas admis. Les termes doivent faire partie des termes couramment utilisÊs dans l'Êcosystème Cloud Native). + +Merci de faire savoir aux mainteneurs que vous avez soumis un terme sur Slack, sinon il pourrait passer à côtÊ. +IdÊalement, mentionnez _@Catherine Paganini_, _@jmo_, _@Seokho Son_, _@Jihoon Seo_, and/or _@iamnoah_. + +Si le terme est approuvÊ et que vous voulez travailler dessus, ils vous assigneront l'issue. + +Notez que vous pouvez vous assigner qu'à un seul terme à la fois. +Si vous souhaitez travailler sur plusieurs termes, merci d'en finir un avant de vous en attribuer un autre + +### Proposer un nouveau terme (crÊer une PR) {#submitting-a-new-term} + +Avant de commencer, merci de lire le [Style Guide](/fr/style-guide/) — il aidera à minimiser les aller/retour. +Comme mentionnÊ dans le style guide, il est fortement recommandÊ de commencer par un document texte (Gdoc, Word ou autre) + +Une fois que le terme est prÃĒt à ÃĒtre proposÊ, rÊdigez le contenu (sous forme de code)... + + +![content](/images/how-to/howto-05.png) + +...Alors "fr" (ou la langue pour laquelle vous souhaitez contribuer)... + +![language folder](/images/how-to/howto-06.png) + +... Et sÊlectionner `_TEMPLATE.md` + +![template](/images/how-to/howto-07.png) + +...Copier le contenu... + +![copy content](/images/how-to/howto-08.png) + +...Et retourner sur le dossier "fr". Et cliquer sur "Add file" et sÊlectionner "Create new file". + + +![create new file](/images/how-to/howto-09.png) + +Ajouter le terme dans l'url (pas de majuscules, pas d'espaces, pas de parenthèses et utiliser un tiret pour sÊparer les mots) rajouter .md à la fin du nom de votre fichier (note: Si la prÊvisualisation ne fonctionne pas, vous avez probablement oubliÊ d'ajouter .md à la fin). +Maintenant copier le contenu. Copier et coller votre dÊfinition dans le fichier. +Pour faciliter les relectures, merci **d'utiliser [semantic line breaks](https://sembr.org/)** (e.g. une ligne par phrase). + +Github utilise le format markdown pour mettre en forme le text (e.g., lien hypertexte, gras, italic). +Merci de lire ceci [markdown cheat sheet](https://www.markdownguide.org/cheat-sheet/). +Pour vÊrifier que vous avez correctement utilisÊ markdown, aller sur "Preview". + + +![finalize term](/images/how-to/howto-10.png) + +Descendre en bas de la page et donner un nom à votre commit quand vous ÃĒtes prÃĒt à l'ajouter. +Vous ÃĒtes, maintenant, prÃĒt à commit votre terme sur votre propre branche. +Proposer une PR nÊcessite une dernière Êtape. Cliquer sur "Commit new file" et... + +![commit new file](/images/how-to/howto-11.png) + +...Maintenant vous crÊez une PR : + +![create a pr](/images/how-to/howto-12.png) + +Vous devriez voir votre PR sous "Pull requests". + +![prs](/images/how-to/howto-13.png) + +## Mettre à jour un terme existant {#update-an-existing-term} + +Pour mettre à jour un terme existant, vous pouvez soit suggÊrer un changement via un ticket (issue) ou directement proposer la mise à jour d'un terme en soumettant une pull request (PR). + +### Proposer un changement via un ticket {#request-a-change-via-an-issue} + +Si vous voulez mettre en Êvidence un problème mais que vous ne savez pas ou ne voulez pas le corriger vous mÃĒme, cliquez sur "Report issue'. + +![report issue](/images/how-to/howto-14.png) + +Cela va directement ouvrir un ticket. Merci d'ÃĒtre prÊcis sur quels changements sont nÊcessaires et pourquoi. Cliquer sur "submit" et c'est fini. + + +![submit issue](/images/how-to/howto-15.png) + +### Mettre à jour un terme directement {#update-a-term-directly} + +Pour directement changer un terme, aller sur "Edit this page". + +![edit this page](/images/how-to/howto-16.png) + +Cela va ouvrir la page GitHub du terme. Faites vos changements et proposer une PR. Merci de prendre connaissance de "Proposer un nouveau terme" avant pour une description dÊtaillÊ (sauter la section qui parle de markdown) + + +## Aider à traduire le glossaire {#help-translate-the-glossary} + +Pour aider à traduire le glossaire dans votre langue principale, merci de rejoindre le Slack et le channel [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) et faites le nous savoir. + +Vous pouvez soit rejoindre une Êquipe existante ou en crÊer une nouvelle (pour voir en quoi ça consiste, regarder [Localization Guide](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)). + +Merci aussi de rejoindre notre rÊunion mensuelle. Vous pouvez trouver plus de dÊtails sur le [CNCF calendar](https://www.cncf.io/calendar/). \ No newline at end of file diff --git a/content/fr/devops.md b/content/fr/devops.md new file mode 100644 index 0000000000..5141cd7e41 --- /dev/null +++ b/content/fr/devops.md @@ -0,0 +1,34 @@ +--- +title: DevOps +status: Completed +category: concept +tags: ["mÊthodologie", "", ""] +--- + + +## Ce que c'est + +Le DevOps est une mÊthodologie dans laquelle une Êquipe gère le processus complet du dÊveloppement d'une application jusqu'aux opÊrations en production, d'oÚ le terme DevOps. +Ceci va au-delà de l'implÊmentation de technologies et demande un changement complet dans la culture et les processus. +Le DevOps fait appel à un groupe d'ingÊnieurs travaillant sur des petits composants (en opposition à une fonctionnalitÊ complète), permettant ainsi de rÊduire les actions de passations – une source d'erreurs commune. + +## Problème auquel il rÊpond + +Traditionnellement, dans les organisations complexes possÊdant des [applications monolithiques](/fr/monolithic-apps/) [fortement couplÊes](/fr/tightly-coupled-architectures/), +le travail Êtait gÊnÊralement fragmentÊ entre plusieurs Êquipes. +Ce fonctionnement menait à de nombreuses passations entre les Êquipes et allongeait les dÊlais de livraison. +À chaque nouveau composant ou nouvelle mise à jour, le rÊsultat Êtait mis en file d'attente pour la prochaine Êquipe. +Étant donnÊ que chaque individu ne travaillait que sur de petites parties du projet, cette approche menait à un manque de +responsabilitÊ. +Le rôle de chacun Êtait ainsi de fournir le travail à l'Êquipe suivante, et non pas de dÊlivrer la fonctionnalitÊ à l'utilisateur +— un manque clair d'alignement des prioritÊs. + +Une fois le code livrÊ en production, ce dernier passÊ entre les mains de tellement de diffÊrents dÊveloppeurs, ayant attendu dans tellement de files d'attente, il en devenait alors compliquÊ de tracer l'origine d'un problème en cas de dysfonctionnement du code. +Le DevOps vient chambouler cette approche. + +## Quel en est l'utilitÊ + +Avoir une seule Êquipe en charge du cycle de vie d'une application permet de +minimiser les passations, rÊduisant ainsi les risques lors des dÊploiements en production, amÊliorant +la qualitÊ du code, car les Êquipes sont Êgalement responsables de sa mise en production et augmentant +la satisfaction des employÊs grÃĸce au gain d'autonomie et de responsabilitÊ. diff --git a/content/fr/distributed-apps.md b/content/fr/distributed-apps.md new file mode 100644 index 0000000000..27f3b7a924 --- /dev/null +++ b/content/fr/distributed-apps.md @@ -0,0 +1,29 @@ +--- +title: Applications DistribuÊes +status: Completed +category: concept +tags: ["architecture", "", ""] +--- + +## Ce que c'est + +Une application distribuÊe est une application dont les fonctionnalitÊs sont dÊcoupÊes en plusieurs parties indÊpendantes et plus petites. +Les applications distribuÊes sont gÊnÊralement composÊes de [microservices](/fr/microservices-architecture/) individuels +qui s'occupent de diffÊrentes problÊmatiques au sein d'une application plus large. +Dans un environnement Cloud Native, ces composants individuels s'exÊcutent gÊnÊralement en tant que [conteneurs](/fr/container/) sur un [cluster](/fr/cluster/). + +## Problème auquel il rÊpond + +Une application s'exÊcutant sur un seul ordinateur reprÊsente un point de dÊfaillance unique — si cet ordinateur tombe en panne, l'application devient indisponible. +Les applications distribuÊes sont souvent opposÊes aux [applications monolithiques](/fr/monolithic-apps/). +Une application monolithique peut ÃĒtre plus difficile à mettre à l'Êchelle car les diffÊrents composants ne peuvent pas ÃĒtre mis à l'Êchelle indÊpendamment. +Les applications monolithiques peuvent Êgalement devenir un frein à la vitesse de dÊveloppement à mesure qu'elles grossissent, +car davantage de dÊveloppeurs doivent travailler sur une base de code partagÊe qui n'a pas toujours des limites bien dÊfinies. + +## Quel en est l'utilitÊ + +En divisant une application en diffÊrents ÊlÊments et en les exÊcutant à diffÊrents endroits, le système global peut tolÊrer davantage de pannes. +Cela permet Êgalement à une application de tirer parti des fonctionnalitÊs de mise à l'Êchelle non disponibles pour une application ayant une instance unique, +à savoir la possibilitÊ de [mettre à l'Êchelle horizontalement](/fr/horizontal-scaling/). +Cela a cependant un coÃģt : une complexitÊ accrue et des couts opÊrationnels supplÊmentaires +— vous exÊcutez dÊsormais de nombreux composants d'application au lieu d'une seule application. diff --git a/content/fr/distributed-systems.md b/content/fr/distributed-systems.md new file mode 100644 index 0000000000..0baddd50c4 --- /dev/null +++ b/content/fr/distributed-systems.md @@ -0,0 +1,30 @@ +--- +title: Système distribuÊ +status: Completed +category: concept +tags: ["architecture", "", ""] +--- + +## Ce que c'est + +Un système distribuÊ est un ensemble de composants autonomes connectÊs via un rÊseau, et qui apparaÃŽt à ses utilisateurs comme un seul système cohÊrent. +La plupart du temps appelÊs [nœuds](/fr/nodes/), ces composants peuvent aussi bien ÃĒtre des machines physiques (des ordinateurs ou des tÊlÊphones portables par exemple) que des processus logiciels. +Les nœuds sont programmÊs pour atteindre un objectif commun et Êchangent des messages via le rÊseau afin de collaborer. + +## Problème auquel il rÊpond + +De nos jours, de nombreuses applications modernes sont si consÊquentes de par leur taille qu'elles nÊcessiteraient des superordinateurs afin de pouvoir fonctionner. +Pensez à Gmail ou Netflix: il n'existe aucune machine physique suffisamment puissante pour hÊberger ces applications dans leur intÊgralitÊ. +En connectant entre elles de multiples machines physiques, la puissance de calcul devient quasiment infinie. +Sans calcul distribuÊ, beaucoup d'applications sur lesquelles nous nous appuyons aujourd'hui ne pourraient pas exister. + +Traditionnellement, les systèmes [passent à l'Êchelle](/fr/scalability/) verticalement, ce qui correspond à l'ajout de processeur ou de mÊmoire à une seule machine. +Le passage à l'Êchelle vertical est chronophage, nÊcessite un temps d'arrÃĒt, et atteint rapidement ses limites. + +## Quel en est l'utilitÊ + +Les systèmes distribuÊs permettent un [passage à l'Êchelle horizontal](/fr/horizontal-scaling/) (par exemple en ajoutant des nœuds au système lorsque nÊcessaire). +Ceci peut ÃĒtre automatisÊ, permettant ainsi au système de gÊrer une croissance soudaine de charge de travail (workload) ou de consommation de ressources. + +Un système non distribuÊ s'expose à des risques de panne dans la mesure oÚ, si une machine physique venait à tomber en Êchec, l'intÊgralitÊ du système viendrait à tomber avec elle. +Un système distribuÊ peut ÃĒtre pensÊ et conçu afin que, dans l'ÊventualitÊ oÚ une machine physique viendrait à tomber, le système au global puisse continuer de fonctionner avec le mÃĒme rÊsultat. diff --git a/content/fr/horizontal-scaling.md b/content/fr/horizontal-scaling.md new file mode 100644 index 0000000000..85138b5f2f --- /dev/null +++ b/content/fr/horizontal-scaling.md @@ -0,0 +1,31 @@ +--- +title: Mise à l'Êchelle horizontale (Horizontal Scaling) +status: Completed +category: Concept +tags: ["infrastructure", "", ""] +--- + +## Ce que c'est + +La mise à l'Êchelle horizontale est une technique qui consiste à augmenter la capacitÊ d'un système en ajoutant plus de [nœuds](/fr/nodes/) au lieu d'ajouter plus de ressources informatiques à des nœuds unitaires (ce dernier Êtant connu sous le nom de [mise à l'Êchelle verticale (Vertical Scaling)](/fr/vertical-scaling/)). +Supposons que nous avons un système avec 4 Go de mÊmoire et que nous voulons augmenter sa capacitÊ à 16 Go, la mise à l'Êchelle horizontale consiste à ajouter 4 × 4 Go de mÊmoire plutôt que de passer à un système avec 16 Go de mÊmoire. + +Cette approche amÊliore les performances d'une application en ajoutant de nouvelles instances, ou [nœuds](/fr/nodes/), pour mieux rÊpartir la charge de travail. +En termes simples, elle vise à rÊduire la charge du serveur plutôt qu'à Êtendre la capacitÊ du serveur unitaire. + +## Problème auquel il rÊpond + +Lorsque la demande d'une application dÊpasse la capacitÊ actuelle de l'instance de cette application, nous devons trouver un moyen de [mettre à l'Êchelle](/fr/scalability/) le système (ajouter de la capacitÊ au système). +Nous pouvons soit ajouter plus de nœuds au système (mise à l'Êchelle horizontale) soit ajouter plus de ressources informatiques aux nœuds existants (mise à l'Êchelle verticale). + +## Quel en est l'utilitÊ + +La mise à l'Êchelle horizontale permet aux applications de s'Êtendre jusqu'aux limites fournies par le cluster sous-jacent. +En ajoutant davantage d'instances au système, l'application peut traiter un plus grand nombre de requÃĒtes. +Si un nœud unique peut traiter 1000 requÃĒtes par seconde, chaque nœud supplÊmentaire devrait augmenter le nombre total de requÃĒtes d'environ 1000 requÃĒtes par seconde. +Cela permet à l'application d'effectuer davantage de travail simultanÊment sans avoir besoin d'augmenter la capacitÊ d'un nœud en particulier. + +## Termes liÊs + +* [Mise à l'Êchelle verticale (Vertical Scaling)](/fr/vertical-scaling/) +* [Mise à l'Êchelle automatique (Autoscaling)](/fr/auto-scaling/) diff --git a/content/fr/idempotence.md b/content/fr/idempotence.md new file mode 100644 index 0000000000..8589c6512f --- /dev/null +++ b/content/fr/idempotence.md @@ -0,0 +1,10 @@ +--- +title: Idempotence +status: Completed +category: Property +tags: ["propriÊtÊ", "", ""] +--- + +En mathÊmatiques ou en informatique, l'idempotence dÊcrit une opÊration qui aboutit toujours au mÃĒme rÊsultat, +peu importe combien de fois vous l'exÊcutez. +Si les paramètres sont identiques, une opÊration idempotente n'affectera pas l'application qu'elle appelle. diff --git a/content/fr/immutable-infrastructure.md b/content/fr/immutable-infrastructure.md new file mode 100644 index 0000000000..c89b953d65 --- /dev/null +++ b/content/fr/immutable-infrastructure.md @@ -0,0 +1,16 @@ +--- +title: Infrastructure immuable +status: Completed +category: property +tags: ["infrastructure", "propriÊtÊ", ""] +--- + +L'infrastructure immuable fait rÊfÊrence à l'infrastructure informatique ([machines virtuelles](/fr/virtual-machine/), [conteneurs](/fr/container/), Êquipements rÊseau) qui ne peut pas ÃĒtre modifiÊe une fois dÊployÊe. +Cela peut ÃĒtre imposÊ à l'aide d'un processus automatisÊ qui Êcrase les modifications non autorisÊes, ou à l'aide d'un système qui, dÊs le dÊpart, n'autorise aucune modification. +Les conteneurs sont un bon exemple d'infrastructure immuable, car des modifications persistantes ne peuvent ÃĒtre apportÊes aux conteneurs qu'en crÊant une nouvelle version du conteneur ou en recrÊant le conteneur existant à partir de son image. + +En empÃĒchant ou en identifiant les modifications non autorisÊes, les infrastructures immuables facilitent l'identification et la rÊduction des risques de sÊcuritÊ. +L'exploitation d'un tel système devient beaucoup plus simple, car les administrateurs peuvent faire des hypothèses à son sujet. +Après tout, ils savent que personne n'a commis d'erreurs ou effectuÊ des modifications qu'ils ont oubliÊ de communiquer. +L'infrastructure immuable va de pair avec l'[infrastructure en tant que code](/fr/infrastructure-as-code/), oÚ toute l'automatisation nÊcessaire à la crÊation de l'infrastructure est stockÊe dans un système de contrôle des versions (par exemple, Git). +Cette combinaison d'immuabilitÊ et de contrôle des versions signifie qu'il existe un journal d'audit durable de chaque modification autorisÊe apportÊe à un système. diff --git a/content/fr/infrastructure-as-code.md b/content/fr/infrastructure-as-code.md new file mode 100644 index 0000000000..5c3311a43f --- /dev/null +++ b/content/fr/infrastructure-as-code.md @@ -0,0 +1,23 @@ +--- +title: Infrastructure en tant que code +status: Completed +category: concept +tags: ["infrastructure", "mÊthodologie", ""] +--- + +## Ce que c'est + +L'infrastructure en tant que code est la pratique de stocker la dÊfinition d'infrastructure dans un ou plusieurs fichiers. +Ceci remplace le modèle traditionnel oÚ l'infrastructure en tant que service est provisionnÊe manuellement, +habituellement au travers de scripts ou autres outils de configuration. + +## Problème auquel il rÊpond + +Construire des applications d'une manière Cloud Native nÊcessite des infrastructures qui peuvent ÃĒtre duplicables et jettables. +Il est Êgalement nÊcessaire de pouvoir [mettre à l'Êchelle](/fr/scalability/) à la demande de manière automatique et rÊpÊtable, potentiellement sans intervention humaine. +Le provisionnement manuel ne pouvant pas rÊpondre aux besoins de rÊactivitÊ et de passage à l'Êchelle des [applications Cloud Natives](/fr/cloud-native-apps/). +Les changements manuels sur l'infrastructure ne sont pas reproductibles, affichent rapidement des problèmes de mise à l'Êchelle, et amènent des erreurs de configuration. + +## Quel en est l'utilitÊ + +En reprÊsentant les ressources des centres de donnÊes comme les serveurs, les Êquilibreurs de charge, et les sous-rÊseaux en tant que code, celà permet aux Êquipes en charge de l'infrastructure d'avoir une seule source de vÊritÊ pour toutes les configurations mais aussi de gÊrer leurs centres de donnÊes dans un pipeline [CI](/continuous-integration/)/[CD](/continuous-delivery/), qui implÊmente la gestion de version et des stratÊgies de dÊploiement. diff --git a/content/fr/kubernetes.md b/content/fr/kubernetes.md new file mode 100644 index 0000000000..4ca9953bba --- /dev/null +++ b/content/fr/kubernetes.md @@ -0,0 +1,36 @@ +--- +title: Kubernetes +status: Completed +category: technology +tags: ["infrastructure", "fondamental", ""] +--- + +## Ce que c'est + +Kubernetes, souvent abrÊgÊ en k8s, est un orchestrateur de conteneurs open source. +Il automatise le cycle de vie des applications conteneurisÊes sur des infrastructures modernes, fonctionnant comme un "Système d'exploitation de centre de donnÊes" qui gère des applications à travers un [système distribuÊ](/fr/distributed-systems/). + +Kubernetes planifie la crÊation de [conteneurs](/fr/container/) sur les [nœuds](/fr/nodes/) d'un [cluster](/fr/cluster/), regroupant plusieurs ressources d'infrastructure tel qu'un rÊpartiteur de charge (load balancer), du stockage persistent, etc. pour exÊcuter des applications conteneurisÊes. + +Kubernetes permet l'automatisation et l'extensibilitÊ, permettant aux utilisateurs de dÊployer des applications de manière dÊclarative (voir ci-dessous) et reproductible. +Kubernetes est extensible via ses [API](/fr/application-programming-interface/), permettant aux utilisateurs expÊrimentÊs de Kubernetes de rajouter des possibilitÊs d'automatisation en accord avec leurs besoins. + +## Problème auquel il rÊpond + +L'automatisation de l'infrastructure et la gestion de configuration dÊclarative sont des concepts importants depuis longtemps, mais ils sont devenus omniprÊsents depuis que le [cloud computing](/fr/cloud-computing/) a gagnÊ en popularitÊ. +À mesure que la demande de ressources de calcul augmente et que les organisations ont besoin de plus de capacitÊs avec moins d'ingÊnieurs, les nouvelles technologies et les mÊthodes de travail doivent rÊpondre à cette demande. + +## Quel en est l'utilitÊ + +Comme pour les outils traditionnels d'[infrastructure en tant que code](/fr/infrastructure-as-code/), Kubernetes aide à l'automatisation, mais a l'avantage de fonctionner avec des conteneurs. +Les conteneurs sont plus rÊsistants aux Êcarts de configuration que les [machines virtuelles](/fr/virtual-machine/) ou physiques. + +De plus, Kubernetes fonctionne de manière dÊclarative, cela veut dire qu'au lieu que des opÊrateurs demandent à la machine de faire quelque chose, ils dÊcrivent — souvent via un manifeste (p. ex., YAML) — à quoi l'infrastructure devrait ressembler. +Kubernetes s'occupe ensuite du "comment". +Il en rÊsulte que Kubernetes est extrÃĒmement compatible avec l'infrastructure en tant que code. + +Kubernetes s'[auto-rÊpare](/fr/self-healing/) Êgalement. +L'Êtat actuel du cluster correspond toujours à l'Êtat dÊsirÊ par l'opÊrateur. +Si Kubernetes dÊtecte une dÊviation par rapport à ce qui est dÊcrit dans les fichiers manifestes, un contrôleur Kubernetes va s'en occuper et le corriger. +Bien que l'infrastructure utilisÊe par Kubernetes puisse ÃĒtre en constante Êvolution, Kubernetes s'adapte constamment et automatiquement aux changements et s'assure qu'elle correspond à l'Êtat souhaitÊ. + diff --git a/content/fr/loosely-coupled-architecture.md b/content/fr/loosely-coupled-architecture.md new file mode 100644 index 0000000000..eb352d9095 --- /dev/null +++ b/content/fr/loosely-coupled-architecture.md @@ -0,0 +1,16 @@ +--- +title: Architecture Faiblement CouplÊe +status: Completed +category: Property +tags: ["fondamental", "architecture", "propriÊtÊ"] +--- + +L'architecture faiblement couplÊe est un type d'architecture oÚ les diffÊrents composants +d'une application sont construits indÊpendamment les uns des autres (c'est le paradigme opposÊ +des [architectures fortement couplÊes](/fr/tightly-coupled-architectures/)). +Chaque composant, parfois identifiÊ comme un [microservice](/fr/microservices-architecture/), est construit pour effectuer une tÃĸche spÊcifique d'une manière qui lui permet d'ÃĒtre utilisÊ par d'autres services. +Cette approche est souvent plus longue à mettre en œuvre que l'architecture fortement couplÊe +mais, elle a plusieurs avantages en particulier lorsque l'application change d'Êchelle. + +Les applications faiblement couplÊes permettent aux Êquipes de dÊvelopper des fonctionnalitÊs, de les dÊployer et les mettre à l'Êchelle de manière indÊpendante, ce qui permet aux organisations d'itÊrer rapidement au sein des composants unitaires. +Le dÊveloppement d'applications est plus rapide et les Êquipes se structurent autour de leurs compÊtences, en mettant l'accent sur leurs applications spÊcifiques. diff --git a/content/fr/microservices-architecture.md b/content/fr/microservices-architecture.md new file mode 100644 index 0000000000..23ca0e22b6 --- /dev/null +++ b/content/fr/microservices-architecture.md @@ -0,0 +1,36 @@ +--- +title: Architecture en Microservices +status: Completed +tags: ["architecture", "fondamental", ""] +--- + +## Ce que c'est + +Une architecture en microservices est une approche architecturale qui divise les applications en (micro)[services](/fr/service/) distincts et indÊpendants, chaque service Êtant focalisÊ sur une fonctionnalitÊ spÊcifique. +Ces services fonctionnent en Êtroite collaboration, et l'utilisateur final a l'impression d'utiliser un seul service. +Prenons Netflix comme exemple. +Son interface vous permet d'accÊder, de rechercher et de prÊvisualiser des vidÊos. +Ces fonctionnalitÊs sont probablement alimentÊes par de plus petits services, chacun gÊrant une fonctionnalitÊ spÊcifique, telle que l'authentification, la recherche et l'exÊcution des prÊvisualisations dans votre navigateur. + +Cette approche architecturale permet aux dÊveloppeurs de dÊployer de nouvelles fonctionnalitÊs ou de mettre à jour des fonctionnalitÊs beaucoup plus rapidement que si elles Êtaient toutes fortement couplÊes, comme dans une [application monolithique](/fr/monolithic-apps/) (voir ci-dessous). + +## Problème auquel il rÊpond + +Les applications sont composÊes de diffÊrentes parties, chacune responsable d'une fonctionnalitÊ spÊcifique. +L'augmentation de la demande pour une fonctionnalitÊ particulière n'augmentera pas forcÊment la demande pour d'autres fonctionnalitÊs de l'application. +Revenons à notre exemple Netflix. +Disons qu'après une grosse campagne marketing, Netflix connaÃŽt un gros pic d'inscriptions, mais l'utilisation du streaming est restÊe plus ou moins stable dans les premières heures de la journÊe. +L'augmentation du nombre d'inscriptions exige une plus grande capacitÊ de la part de la fonctionnalitÊ d'inscription. +Traditionnellement (approche monolithique), l'ensemble de l'application devrait ÃĒtre [mise à l'Êchelle](/fr/scalability/) pour s'adapter à la demande - une utilisation très inefficace des ressources. + +Les architectures monolithiques font parfois tomber les dÊveloppeurs dans des pièges de conception. +Étant donnÊ que tout le code se retrouve au mÃĒme endroit, il est plus facile de rendre ce code [Êtroitement couplÊ](/fr/tightly-coupled-architectures/) et plus difficile d'appliquer le principe de sÊparation des responsabilitÊs. +Les monolithes exigent Êgalement souvent que les dÊveloppeurs comprennent l'ensemble du code avant d'y faire des modifications. +L'architecture en microservices est une rÊponse à ces dÊfis. + +## Quel en est l'utilitÊ + +La sÊparation des fonctionnalitÊs en diffÊrents microservices facilite leur dÊploiement, leur mise à jour et leur mise à l'Êchelle de manière indÊpendante. +Cela permet Êgalement à diffÊrentes Êquipes de travailler simultanÊment sur une petite partie d'une application plus grande sans avoir d'impact involontairement nÊgatif sur le reste de l'application. +Bien qu'une architecture en microservices rÊsolve de nombreux problèmes, elle crÊe Êgalement des surcoÃģts opÊrationnels - le nombre d'ÊlÊments que vous devez dÊployer et gÊrer augmente considÊrablement. +De nombreuses [technologies Cloud Natives](/fr/cloud-native-tech/) visent à faciliter le dÊploiement et la gestion des microservices. diff --git a/content/fr/monolithic-apps.md b/content/fr/monolithic-apps.md new file mode 100644 index 0000000000..6548b2ca25 --- /dev/null +++ b/content/fr/monolithic-apps.md @@ -0,0 +1,25 @@ +--- +title: Applications Monolithiques +status: Completed +category: concept +tags: ["architecture", "fondamental", ""] +--- + +## Ce que c'est + +Une application monolithique contient toutes les fonctionnalitÊs au sein d'un unique logiciel dÊployable. +C'est souvent la manière la plus simple pour commencer le dÊveloppement d'une application. +Cependant, lorsque l'application se complexifie, les monolithes peuvent devenir difficiles à maintenir. +Avec plus de dÊveloppeurs qui travaillent sur la mÃĒme base de code, la probabilitÊ de conflits dans les changements et donc de communication directe entre les dÊveloppeurs augmente. + +## Problème auquel il rÊpond + +Transformer une application en [microservices](/fr/microservices-architecture/) augmente la charge de travail - comme il y a plus de choses à tester, dÊployer et à maintenir opÊrationel. +Au dÊbut du cycle de dÊveloppement d'un produit il peut ÃĒtre avantageux de repousser cette complexitÊ et de construire une application monolithique jusqu'à ce que le produit soit reconnu comme un succès. + +## Quelle en est l'utilitÊ + +Un monolith correctement architecturÊ peut respecter les principes lean en Êtant la manière la plus simple d'obtenir une application fonctionnelle. +Lorsque la valeur commerciale d'une application monolithique s'avère ÃĒtre un succès, elle peut ÃĒtre dÊcomposÊe en microservices. +CrÊer une application microservices avant que la valeur ne soit attestÊe peut s'avÊrer ÃĒtre une dÊpense prÊmaturÊe. +Si l'application n'amène aucune valeur, cet effort sera gÃĸchÊ. diff --git a/content/fr/nodes.md b/content/fr/nodes.md new file mode 100644 index 0000000000..7eeb3f3a13 --- /dev/null +++ b/content/fr/nodes.md @@ -0,0 +1,28 @@ +--- +title: Nœud +status: Completed +category: Concept +tags: ["infrastructure", "fondamental", ""] +--- + +## Ce que c'est + +Un nœud est un ordinateur qui travaille de concert avec d'autres ordinateurs, ou nœuds, pour accomplir une tÃĸche commune. +Prenons par exemple votre ordinateur portable, votre modem et votre imprimante. +Ils sont tous connectÊs via votre rÊseau wifi, communiquant et collaborant ensemble, chacun reprÊsentant un nœud. +En [cloud computing](/fr/cloud-computing/), un nœud peut ÃĒtre un ordinateur physique, +un ordinateur virtuel, appelÊ [VM](/fr/virtual-machine/), ou encore un [conteneur](/fr/container/). + +## Problème auquel il rÊpond + +Bien qu'une application puisse s'exÊcuter sur une seule machine, comme beaucoup le font encore, cela comporte certains risques. +En particulier, une dÊfaillance du système sous-jacent va perturber l'application. +Pour rÊsoudre ce problème, les dÊveloppeurs ont commencÊ à crÊer des [applications distribuÊes](/fr/distributed-apps/) oÚ chaque processus s'exÊcute sur son propre nœud. +Ainsi, les nœuds exÊcutent des applications ou des processus dans le cadre d'un groupe formant un [cluster](/fr/cluster/), c'est-à-dire un groupe de nœuds qui travaillent ensemble pour atteindre un objectif commun. + +## Quel en est l'utilitÊ + +Un nœud vous fournit une unitÊ de calcul distincte (mÊmoire, processeur, rÊseau) que vous pouvez attribuer à un cluster. +Dans une plate-forme ou une application [Cloud Native](/fr/cloud-native-tech/), un nœud reprÊsente une unitÊ unique qui peut effectuer un travail. +IdÊalement, les nœuds individuels sont indiffÊrenciÊs, c'est-à-dire que +tout nœud d'un type particulier est indiscernable de tout autre nœud du mÃĒme type. \ No newline at end of file diff --git a/content/fr/observability.md b/content/fr/observability.md new file mode 100644 index 0000000000..7763ec83db --- /dev/null +++ b/content/fr/observability.md @@ -0,0 +1,16 @@ +--- +title: ObservabilitÊ +status: Completed +category: concept +tags: ["propriÊtÊ", "", ""] +--- + +L'observabilitÊ est une propriÊtÊ des systèmes qui dÊfinit le degrÊ auquel le système peut gÊnÊrer des informations exploitables. +Elle permet aux utilisateurs de comprendre l'Êtat d'un système à partir de ses sorties externes et de prendre des mesures (correctives). + +Les systèmes informatiques sont mesurÊs en observant des signaux de bas niveau tels que le temps processeur, la mÊmoire, l'espace disque, des signaux de niveau supÊrieur et des signaux mÊtiers, notamment les temps de rÊponse de l'API, les erreurs, le nombre de transactions par seconde, etc. +Ces systèmes observables sont **observÊs** (ou surveillÊs) grÃĸce à des outils spÊcialisÊs, appelÊs outils d'observabilitÊ. Une liste de ces outils peut ÃĒtre consultÊe dans la [section observabilitÊ du Cloud Native Landscape](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category). + +Les systèmes observables fournissent des donnÊes significatives et exploitables à leurs opÊrateurs, leur permettant ainsi d'obtenir des rÊsultats intÊressants (intervention plus rapide en cas d'incident, augmentation de la productivitÊ des dÊveloppeurs) et de rÊduire le temps improductif. + +Par consÊquent, le degrÊ d'observabilitÊ d'un système aura un impact significatif sur ses coÃģts d'exploitation et de dÊveloppement. diff --git a/content/fr/reliability.md b/content/fr/reliability.md new file mode 100644 index 0000000000..e658543ffc --- /dev/null +++ b/content/fr/reliability.md @@ -0,0 +1,11 @@ +--- +title: FiabilitÊ +status: Completed +category: property +tags: ["fondamental", "propriÊtÊ", ""] +--- + +Du point de vue Cloud Native, la fiabilitÊ fait rÊfÊrence à la capacitÊ d'un système à rÊagir face aux pannes. +Si nous disposons d'un [système distribuÊ](/fr/distributed-systems/) qui continue de fonctionner alors que l'infrastructure change et que des composants unitaires tombent en panne, alors il est fiable. +En revanche, s'il tombe facilement en panne et que les opÊrateurs doivent intervenir manuellement pour le maintenir en Êtat de marche, alors il n'est pas fiable. +L'objectif des [applications Cloud Natives](/fr/cloud-native-apps/) est de crÊer des systèmes intrinsèquement fiables. diff --git a/content/fr/scalability.md b/content/fr/scalability.md new file mode 100644 index 0000000000..7d65f97c3b --- /dev/null +++ b/content/fr/scalability.md @@ -0,0 +1,21 @@ +--- +title: CapacitÊ de mise à l'Êchelle (ScalabilitÊ) +status: Completed +category: property +tags: ["fondamental", "propriÊtÊ", ""] +--- + +La capacitÊ de mise à l'Êchelle (ou scalabilitÊ) correspond à la capacitÊ d'un système à s'agrandir. +C'est-à-dire à augmenter la capacitÊ d'un système à faire ce qu'il est supposÊ faire. +Par exemple, un [cluster](/fr/cluster/) [Kubernetes](/fr/kubernetes/) change d'echelle en augmentant +ou en rÊduisant le nombre d'applications [conteneurisÊes](/fr/containerization/), +mais cette scalabilitÊ dÊpend de plusieurs facteurs. +Combien de [nœuds](/fr/nodes/) possède-t-il, combien de [conteneurs](/fr/container/) peut gÊrer chaque nœud, +et combien d'enregistrements et d'opÊrations le plan de contrôle (control plane) peut-il supporter ? + +Un système extensible permet de rajouter simplement plus de capacitÊ. +Nous diffÊrencions deux types d'extension. +D'un cotÊ, il y a la [mise à l'Êchelle horizontale](/fr/horizontal-scaling/) qui ajoute des nœuds pour supporter l'augmentation de charge. +À l'opposÊ, il y a la [mise à l'Êchelle verticale](/fr/vertical-scaling/) oÚ les nœuds individuels sont rendus plus performants pour permettre plus de transactions +(i.e. en ajoutant plus de mÊmoire ou de CPU à une machine individuelle). +Un système extensible est capable de changer facilement pour satisfaire les besoins des utilisateurs. diff --git a/content/fr/search.md b/content/fr/search.md new file mode 100644 index 0000000000..ad61a29722 --- /dev/null +++ b/content/fr/search.md @@ -0,0 +1,4 @@ +--- +title: RÊsultats de recherche +layout: search +--- \ No newline at end of file diff --git a/content/fr/self-healing.md b/content/fr/self-healing.md new file mode 100644 index 0000000000..dc8ef98754 --- /dev/null +++ b/content/fr/self-healing.md @@ -0,0 +1,11 @@ +--- +title: Auto-rÊparant +status: Completed +category: property +tags: ["infrastructure", "propriÊtÊ"] +--- + + +Un système auto-rÊparant est capable de se remettre de certains types de dÊfaillance sans aucune intervention humaine. +Il possède une boucle de "convergence" ou de "contrôle" qui examine activement l'Êtat courant du système et le compare à l'Êtat souhaitÊ initialement par les opÊrateurs. +S'il y a une diffÊrence (par exemple, moins d'instances d'application sont en cours d'exÊcution que souhaitÊ), il prendra des mesures correctives (par exemple, dÊmarrer de nouvelles instances). diff --git a/content/fr/service-mesh.md b/content/fr/service-mesh.md new file mode 100644 index 0000000000..bdbcd0e3f9 --- /dev/null +++ b/content/fr/service-mesh.md @@ -0,0 +1,32 @@ +--- +title: Maillage de services (Service Mesh) +status: Completed +category: technology +tags: ["rÊseau", "", ""] +--- + +## Ce que c'est + +Dans un monde de [microservices](/fr/microservices-architecture/), les applications sont dÊcoupÊes en plusieurs petits [services](/fr/service/) qui communiquent via +le rÊseau. +Exactement comme votre rÊseau wifi, les rÊseaux informatiques sont intrinsèquement non fiables, piratables et souvent lents. +Les services mesh rÊpondent à cette problÊmatique en gÊrant le trafic (i.e., la communication) entre les services et ajoutent de la +[fiabilitÊ](/fr/reliability/), de l'[observabilitÊ](/fr/observability/) et des fonctionnalitÊs liÊes à la sÊcuritÊ de manière uniforme pour tous +les services. + +## Problème auquel il rÊpond + +Après avoir migrÊ vers une architecture microservices, les ingÊnieurs doivent gÊrer une centaine +voir des milliers de services, qui doivent tous communiquer. +Cela signifie que beaucoup de trafic va transiter sur le rÊseau. +Par dessus tout cela, chaque application peut avoir besoin de chiffrer ses communications pour des contraintes +rÊglementaires, fournir des mÊtriques pour les Êquipes opÊrationnelles et proposer des informations dÊtaillÊes sur le traffic +pour aider à diagnostiquer les problèmes. +Si cela devait ÃĒtre gÊrÊ au niveau de chaque application, chacune de ces fonctionnalitÊs pourrait conduire à crÊer des frictions entre les Êquipes et ralentir le dÊveloppement de nouvelles fonctionnalitÊs. + +## Quel en est l'utilitÊ + +Le maillage de services (services mesh) ajoute de la fiabilitÊ, de l'observabilitÊ et de la sÊcuritÊ +pour tous les services du cluster sans avoir à changer le code des services. +Avant les services mesh, cette fonctionnalitÊ devait ÃĒtre implÊmentÊe dans chaque service, +devenant une potentielle source de bug, voir de dette technique. diff --git a/content/fr/service.md b/content/fr/service.md new file mode 100644 index 0000000000..1b13a59d07 --- /dev/null +++ b/content/fr/service.md @@ -0,0 +1,12 @@ +--- +title: Service +status: Completed +category: concept +tags: ["application", "fondamental", ""] +--- + +Notez bien qu'en informatique, le mot service a plusieurs significations. +Dans cette dÊfinition, nous nous concentrerons sur la plus traditionnelle : service comme dans microservice. +La manière dont les services diffèrent des microservices, voire s'ils diffèrent, est subtil et diffÊrentes personnes peuvent avoir des opinions diffÊrentes. +Pour une dÊfinition gÊnÊrale, nous les considÊrerons Êquivalents. +Veuillez vous rÊfÊrer à la dÊfinition des [microservices](/fr/microservices-architecture/). diff --git a/content/fr/style-guide/_index.md b/content/fr/style-guide/_index.md new file mode 100644 index 0000000000..5b914765d6 --- /dev/null +++ b/content/fr/style-guide/_index.md @@ -0,0 +1,173 @@ +--- +title: Guide de rÊdaction +toc_hide: true +menu: + main: + weight: 10 +--- + +Ce guide de rÊdaction aide à comprendre la cible du Glossaire, la structure des dÊfinitions, le niveau requis de dÊtails, ainsi que la manière +de maintenir un style constant. + +Le Glossaire Cloud Native suit le guide de [rÊdaction de rÊfÊrence](https://github.com/cncf/foundation/blob/master/style-guide.md) du dÊpôt de la CNCF. + +De plus, les règles suivantes sont appliquÊes: + +1. Utiliser un langage simple, accessible, et Êviter les jargon technique ainsi que les buzzwords. +2. [Éviter le langage du registre familier](https://fr.wikipedia.org/wiki/Registre_familier) +3. [Employer un langage littÊral et concret](https://guidetogrammar.org/grammar/composition/abstract.htm) +4. [S'abstenir des contractions](https://fr.wikipedia.org/wiki/Contraction_(grammaire)) +5. [PrivilÊgier la forme passive](http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4267) +6. [Favoriser des tournures de phrase positives](http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4267) +7. [Aucun point d'exclamation en dehors des citations](http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3333) +8. Ne pas exagÊrer +9. Éviter les rÊpÊtitions +10. Être concis + +## Cibles + +Le Glossaire est rÊdigÊ comme rÊfÊrence technique ET non-technique. +Merci de s'assurer que les dÊfinitions sont expliquÊes en termes simples et ne pas assumer que les lecteurs ont un bagage technique. Plus d'informations dans la section DÊfinition. + +## Modèle de dÊfinition + +Chaque terme du glossaire est stockÊ dans un fichier au format markdown, et suit le modèle suivant: + +```md +--- +title: +status: +category: +--- + +## Ce que c'est + +Un bref descriptif de la technologie ou du concept. + +## Problème qu'il adresse + +Quelques lignes à propos du problème qu'il adresse. + +## Quel en est l'utilitÊ + +Quelques lignes sur comment le problème est rÊsolu. +``` + +### Titre + +L'Êtiquette **title** est toujours placÊ en haut de la disposition, et sa valeur doit toujours ÃĒtre en majuscule. + +```md +--- +title: Modèle de dÊfinition +``` + +### Status + +L'Êtiquette **status** vient après l'Êtiquette label. Cette Êtiquette indique si les dÊfinitions ont ÊtÊ soigneusement contrôlÊes, ou si l'explication +nÊcessite plus de travail. + +Les valeurs acceptÊes sont: + +- Completed +- Feedback Appreciated +- Not Started + +Il est toujours possible d'ouvrir un ticket concernant une dÊfinition complÊtÊe (status "Completed"). Lorsque une dÊfinition est sujette au changement, son +status sera changÊ à *Feedback Appreciated*. + +```md +--- +title: Modèle de dÊfinition +status: Feedback Appreciated +``` + +### Category + +L'Êtiquette **category** vient après celle du status. Sa valeur doit ÃĒtre l'une des possibilitÊs suivantes: + +- Technology +- Property +- Concept + +```md +--- +title: Modèle de dÊfinition +status: Feedback Appreciated +category: Concept +--- +``` + +### DÊfinition + +#### Trois sous-sections + +Les dÊfinitions pour les catÊgories **technology** et **concept** contiennent trois sous-sections: + +- **Ce que c'est** : fournis une explication claire et concise de ce dont nous parlons. +- **Problème qu'il adresse** : se concentre sur le problème, pas la solution (cela vient dans la section suivante). + Pour faire simple, Êviter de mentionner le terme qui est dÊfini. Le problème nous aide à nous concentrer sur *ce qui* nous a menÊ à avoir besoin de ce terme. +- **Quel en est l'utilitÊ**: maintenant, revenir sur le terme en lui-mÃĒme. Comment est-ce qu'il adresse le problème dÊcrit prÊcÊdemment ? + +Noter que les propriÊtÊs ne nÊcessitent pas de section sÊparÊe. Un dÊfinition suffira. + +Pour faciliter la revue, merci d'utiliser les **sauts à la ligne sÊmantiques** (une phrase par ligne). + +#### La qualitÊ est primordiale + +Si vos modifications sont acceptÊes, vos changements seront les dÊfinitions officielles de la CNCF pour ce terme (jusqu'à ce qu'ils soient mis à jour +par une autre personne). +La crÊation d'un terme qui respecte les standards ÊlevÊs de la CNCF ne doit pas se faire prÊcipitamment - la qualitÊ requiert du temps et de l'effort. + +**Faites vos recherches**: MÃĒme si vous avez confiance en votre connaissance du terme, vÊrifiez que vous avez la bonne dÊfinition. +L'utilisation des termes en entreprise ne reflètent pas toujours la globalitÊ. +Lorsque vous effectuez vos recherches, essentiellement lorsque vous n'ÃĒtes pas 100% familier avec ce dernier, utilisez plusieurs sources. +De nombreuses dÊfinitions ne sont pas unilatÊrales, spÊcifiquement lorsqu'elles sont issues d'une solution propriÊtaire. +Le Glossaire se doit de contenir des dÊfinitions neutres de toute solution propriÊtaire, et globales. + +**Ne pas plagier**. Comme toute publication sÊrieuse, le Glossaire se doit d'appliquer les mÃĒmes règles. +Ne pas copier et coller le travail d'autrui, à mois que ce ne soit une citation ou contribution. +Si une section particulière d'une dÊfinition vous parait appropriÊe, paraphrasez-la avec vos propres mots. + +**RÊfÊrencez les ressources faisant autoritÊ**. Lorsque cela est possible, rÊfÊrencez les ressources faisant autoritÊ sur le terme, telles que les documentations de projet. +Notez qu'il n'est pas possible de rÊfÊrer des ressources dÊveloppÊes par les vendeurs. + +#### Rester simple + +Le Glossaire tend à **expliquer des concepts complexes avec des mots simples** - cette tÃĸche est particulièrement difficile, et nÊcessitera de nombreuses rÊvisions. +Toujours garder à l'esprit le public cible lors de la rÊdaction d'une dÊfinition. +Évitez l'utilisation de termes d'entreprise ou les buzzwords - vous vous retrouverez probablement obligÊ de vous corriger vous-mÃĒme à plusieurs reprises sur ce point. + +Lorsque la situation est appropriÊe, utiliser des **exemples de la vie rÊelle** qui peuvent aider les lecteurs (en particulier les moins techniques d'entre eux) à avoir une meilleure +vision du *quand* et *pourquoi* du concept que vous expliquez. + +Lorsqu'utilisÊ dans vos dÊfinitions, toujours **rediriger vers des termes existant du Glossaire** (uniquement la première mention du terme doit-ÃĒtre redirigÊe). + +**Exemple**: rÊfÊrez vous à la section "Ce que c'est" de la dÊfinition d'un [service mesh](/fr/service-mesh/). +Cette dernière fait rÊfÊrence aux dÊfinitions de micro-services, service, fiabilitÊ, et observabilitÊ. +De plus, elle utilise un exemple de la vie rÊelle en comparant les enjeux des rÊseaux dans un environnement micro-services (un concept auquel un non-technique peut difficilement s'identifier) à une problÊmatique de rÊseau wifi (ce que toute personne possÊdant un ordinateur peut comprendre). +Lorsque cela est possible, tentez de faire cette connexion. + +#### DÊbuter avec un document Google ou Word + +Nous recommandons de dÊbuter les modifications dans un document Google ou Word, de laisser reposer votre dÊfinitions pendant quelques jours, et d'y revenir par la suite. +Aussi, assurez-vous d'effectuer une vÊrification orthographique avant de soumettre votre PR. + +Afin d'Êviter qu'un autre contributeur soumette une PR concernant le terme sur lequel vous travaillez, +assurez-vous de vous approprier un ticket (ou d'en crÊer un) et qu'il vous soit assignÊ. +Plus d'information sur la documentation de [Comment contribuer](/fr/contribute/). + +Avant de dÊmarrer, veillez à lire quelques termes du Glossaire afin de vous approprier le niveau de dÊtails et de difficultÊ, +ainsi que de l'utilisation judicieuse des exemples. + +## Processus de revue: à quoi s'attendre + +Notez que nous ne sommes actuellement que 3 mainteneurs, effectuant ce travail sur notre temps personnel. +Occasionnellement, nous serons capables de revoir les termes rapidement; en d'autres occasions, il est possible que cela prenne plus de temps - merci de votre patience. +Si vous avez des questions, n'hÊsitez pas à nous contacter sur le canal Slack #glossary (pour savoir oÚ et comment le trouver, rÊfÊrez-vous à la section de [Comment contribuer](/fr/contribute/)). + +Notre but est de faire du Glossaire la meilleure des ressources possible. +Une fois que vous aurez soumis votre PR, il est possible que nous demandions une ou plusieurs rÊvisions. +Ne soyez pas frustrÊ - c'est le cas pour un grand nombre de PRs. +Ces allers-retours et notre collaboration assureront que votre contribution devienne une dÊfinition rÊellement +utile, lue et rÊfÊrÊe par de nombreux lecteurs aux quatres coins du monde. diff --git a/content/fr/tightly-coupled-architectures.md b/content/fr/tightly-coupled-architectures.md new file mode 100644 index 0000000000..4705edbabb --- /dev/null +++ b/content/fr/tightly-coupled-architectures.md @@ -0,0 +1,20 @@ +--- +title: Architectures Fortement CouplÊes +status: Completed +category: Property +tags: ["fondamental", "architecture", "propriÊtÊ"] +--- + +L'architecture fortement couplÊe est un type d'architecture oÚ un nombre de composants d'application sont interdÊpendants +(le paradigme opposÊ est les [architectures faiblement couplÊes](/fr/loosely-coupled-architecture/)). +Celà signifie qu'un changement dans un composant aura sÃģrement un impact sur les autres composants. +Souvent plus simples à mettre en oeuvre que les architectures faiblement couplÊes, +elles peuvent mettre un système à risque par rapport aux erreurs en cascade. +Elles ont Êgalement tendance à nÊcessiter des dÊploiements synchronisÊs des composants +ce qui peut devenir un frein à la productivitÊ des dÊveloppeurs. + +Les architectures fortement couplÊes sont une manière assez traditionnelle de construction des applications. +Bien qu'elles ne soient pas nÊcessairement conformes avec les meilleures pratiques de dÊveloppement de [microservices](/fr/microservices-architecture/) +elles peuvent ÃĒtre utiles dans des circonstances spÊcifiques. +Elles ont tendances à ÃĒtre plus rapides et plus simples à mettre en oeuvre et +à la manière des [applications monolithiques](/fr/monolithic-apps/) elles peuvent accÊlÊrer le cycle de dÊveloppement initial. diff --git a/content/fr/vertical-scaling.md b/content/fr/vertical-scaling.md new file mode 100644 index 0000000000..01e614a0f7 --- /dev/null +++ b/content/fr/vertical-scaling.md @@ -0,0 +1,28 @@ +--- +title: Mise à l'Êchelle verticale (Vertical Scaling) +status: Completed +category: Concept +tags: ["infrastructure", "", ""] +--- + +## Ce que c'est + +La mise à l'Êchelle verticale, Êgalement connue sous le nom de "mise à l'Êchelle vers le haut et vers le bas", est une technique qui consiste à augmenter la capacitÊ d'un système en ajoutant des processeurs et de la mÊmoire à chaque [nœud](/fr/nodes/) unitaire à mesure que la charge de travail augmente. +Supposons que vous avez un ordinateur avec 4 Go de mÊmoire et que vous voulez augmenter sa capacitÊ à 16 Go, la mise à l'Êchelle verticale consiste à passer à un système avec 16 Go de mÊmoire. (Veuillez vous rÊfÊrer à la [mise à l'Êchelle horizontale](/fr/horizontal-scaling/) pour une approche diffÊrente de mise à l'Êchelle.) + +## Problème auquel il rÊpond + +Lorsque la demande d'une application dÊpasse la capacitÊ actuelle de l'instance de cette application, nous devons trouver un moyen de [mettre à l'Êchelle](/fr/scalability/) le système (ajouter de la capacitÊ au système). +Nous pouvons soit ajouter plus de ressources informatiques aux nœuds existants (mise à l'Êchelle verticale), soit ajouter plus de nœuds au système ([mise à l'Êchelle horizontale](/fr/horizontal-scaling/)). +La [capacitÊ de mise à l'Êchelle](/fr/scalability/) contribue à la compÊtitivitÊ, à l'efficacitÊ, à la rÊputation et à la qualitÊ. + +## Quel en est l'utilitÊ + +La mise à l'Êchelle verticale vous permet de redimensionner votre serveur sans modifier le code de l'application. +Cela contraste avec la mise à l'Êchelle horizontale, oÚ l'application doit ÃĒtre rÊplicable pour ÃĒtre mise à l'Êchelle, ce qui peut nÊcessiter des mises à jour du code. +La mise à l'Êchelle verticale augmente la capacitÊ d'une application existante en ajoutant des ressources informatiques, ce qui permet à l'application de traiter davantage de requÃĒtes et d'effectuer davantage de travail simultanÊment. + +## Termes liÊs + +* [Mise à l'Êchelle horizontale (Horizontal Scaling)](/fr/horizontal-scaling/) +* [Mise à l'Êchelle automatique (Auto Scaling)](/fr/auto-scaling/) diff --git a/content/fr/virtual-machine.md b/content/fr/virtual-machine.md new file mode 100644 index 0000000000..3157c8bf28 --- /dev/null +++ b/content/fr/virtual-machine.md @@ -0,0 +1,38 @@ +--- +title: Machine Virtuelle +status: Completed +category: Technology +tags: ["fondamental", "infrastructure", ""] +--- + +## Ce que c'est + +Une machine virtuelle (VM) est un ordinateur et son système d'exploitation +qui n'est pas liÊ à un matÊriel particulier. +Les VMs s'appuient sur la [virtualisation](/fr/virtualization/) pour dÊcouper un unique ordinateur physique en plusieurs ordinateurs virtuels. +Cette sÊparation permet aux entitÊs et aux fournisseurs d'infrastructure de +facilement crÊer et dÊtruire des VMs sans impacter l'infrastructure sous-jacente. + +## Problème auquel il rÊpond + +Les machines virtuelles tirent parti de la virtualisation. +Lorsqu'une [machine physique](/fr/bare-metal-machine/) est liÊe à un unique système d'exploitation, +la manière donc les ressources peuvent ÃĒtre utilisÊes est en quelque sorte limitÊe. +De plus, lorsqu'un système d'exploitation est liÊ à une unique machine physique, +sa disponibilitÊ est directement liÊe à ce matÊriel. +Si la machine physique est indisponible à cause d'une maintenance ou d'un problème matÊriel, le système d'exploitation l'est Êgalement. + +## Quelle en est l'utilitÊ + +En supprimant la relation directe entre un système d'exploitation et la machine physique unique, +vous rÊsolvez plusieurs problèmes des machines physiques: +temps de provisionning, utilisation du matÊriel et rÊsiliance. + +Sans avoir besoin d'acheter, d'installer ou du configurer du nouveau matÊriel, le temps de provisionning d'un nouvel ordinateur est considÊrablement amÊliorÊ. +Les VMs vous permettent de mieux utiliser vos ressources matÊrielles existantes +en plaçant plusieurs machines virtuelles sur une seule machine physique. +N'Êtant pas liÊ à une machine physique particulière, les VMs sont Êgalement plus +rÊsiliantes que les machines physiques. +Lorsqu'une machine physique a besoin d'ÃĒtre indisponible, +les VMs qui sont ÊxÊcutÊes dessus sont dÊplacÊes sur une autre machine avec peu +ou pas d'indisponibilitÊ. diff --git a/content/fr/virtualization.md b/content/fr/virtualization.md new file mode 100644 index 0000000000..4db94c2323 --- /dev/null +++ b/content/fr/virtualization.md @@ -0,0 +1,29 @@ +--- +title: Virtualisation +status: completed +category: technology +tags: ["fondamental", "infrastructure", "mÊthodologie"] +--- + +## Ce que c'est + +La virtualisation, dans un cadre Cloud Native, +est l'exÊcution de plusieurs systèmes d'exploitation isolÊs sur un mÃĒme ordinateur physique, aussi appelÊ serveur. +Ces systèmes d'exploitation isolÊs et leurs ressources de calcul dÊdiÊes (processeur, mÊmoire et rÊseau) sont +appelÊes machines virtuelles ou VMs. +Lorsque nous parlons d'une [machine virtuelle](/fr/virtual-machine/), nous parlons d'un ordinateur dÊfini par logiciel. +C'est-à-dire quelque chose qui ressemble et se comporte comme un vrai ordinateur, mais partage son matÊriel avec d'autres machines virtuelles. +Le [cloud computing](/fr/cloud-computing/) fonctionne principalement grÃĸce à la virtualisation. +Par exemple, lorsque vous louez un "ordinateur" auprès d'AWS, cet ordinateur est en fait une machine virtuelle. + +## Problème auquel il rÊpond + +La virtualisation rÊsout plusieurs problèmes, notamment l'amÊlioration de l'utilisation du matÊriel physique +en permettant à plus d'applications de s'exÊcuter sur un mÃĒme ordinateur physique +tout en restant isolÊs les uns des autres pour des raisons de sÊcuritÊ. + +## Quelle en est l'utilitÊ + +Les applications exÊcutÊes sur des machines virtuelles ne savent pas qu'elles partagent un ordinateur physique. +La virtualisation permet Êgalement de dÊmarrer un nouvel "ordinateur" (une machine virtuelle) en quelques minutes +sans se soucier des contraintes physiques liÊes à l'ajout d'un nouvel ordinateur dans un centre de donnÊes. diff --git a/content/hi/containerization.md b/content/hi/containerization.md index 81b395864a..91b13002f4 100644 --- a/content/hi/containerization.md +++ b/content/hi/containerization.md @@ -6,7 +6,7 @@ category: ā¤ĒāĨā¤°āĨŒā¤ĻāĨā¤¯āĨ‹ā¤—ā¤ŋā¤•āĨ€ ## ā¤¯ā¤š ā¤•āĨā¤¯ā¤ž ā¤šāĨˆ -ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤°āĨ€ā¤•ā¤°ā¤Ŗ ā¤ā¤• ā¤ā¤ĒāĨā¤˛āĨ€ā¤•āĨ‡ā¤ļā¤¨ ā¤”ā¤° ā¤‰ā¤¸ā¤•āĨ€ ā¤¨ā¤ŋā¤°āĨā¤­ā¤°ā¤¤ā¤ž ā¤•āĨ‹ ā¤ā¤• [ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤ŽāĨ‡ā¤œ](/hi/container-image/) ā¤ŽāĨ‡ā¤‚ ā¤Ŧā¤žā¤‚ā¤§ā¤¨āĨ‡ ā¤•āĨ€ ā¤ĒāĨā¤°ā¤•āĨā¤°ā¤ŋā¤¯ā¤ž ā¤šāĨˆāĨ¤ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤¨ā¤ŋā¤°āĨā¤Žā¤žā¤Ŗ ā¤ĒāĨā¤°ā¤•āĨā¤°ā¤ŋā¤¯ā¤ž ā¤•āĨ‡ ā¤˛ā¤ŋā¤ [ā¤“ā¤Ēā¤¨ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤¨ā¤ŋā¤ļā¤ŋā¤ā¤Ÿā¤ŋā¤ĩ](https://opencontainers.org) (OCI) ā¤Žā¤žā¤¨ā¤• ā¤•ā¤ž ā¤Ēā¤žā¤˛ā¤¨ ā¤•ā¤°ā¤¨ā¤ž ā¤†ā¤ĩā¤ļāĨā¤¯ā¤• ā¤šāĨˆāĨ¤ ā¤œā¤Ŧ ā¤¤ā¤• ā¤†ā¤‰ā¤Ÿā¤ĒāĨā¤Ÿ ā¤ā¤• ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤ŽāĨ‡ā¤œ ā¤šāĨˆ ā¤œāĨ‹ ā¤‡ā¤¸ ā¤Žā¤žā¤¨ā¤• ā¤•ā¤ž ā¤Ēā¤žā¤˛ā¤¨ ā¤•ā¤°ā¤¤āĨ€ ā¤šāĨˆ, ā¤¤ā¤Ŧ ā¤¤ā¤• ā¤•āĨ‹ā¤ˆ ā¤Ģā¤°āĨā¤• ā¤¨ā¤šāĨ€ā¤‚ ā¤Ēā¤Ąā¤ŧā¤¤ā¤ž ā¤•ā¤ŋ ā¤•ā¤ŋā¤¸ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤°āĨ€ā¤•ā¤°ā¤Ŗ ā¤‰ā¤Ēā¤•ā¤°ā¤Ŗ ā¤•ā¤ž ā¤‰ā¤Ēā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤¤ā¤ž ā¤šāĨˆāĨ¤ +ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤°āĨ€ā¤•ā¤°ā¤Ŗ ā¤ā¤• ā¤ā¤ĒāĨā¤˛āĨ€ā¤•āĨ‡ā¤ļā¤¨ ā¤”ā¤° ā¤‰ā¤¸ā¤•āĨ€ ā¤¨ā¤ŋā¤°āĨā¤­ā¤°ā¤¤ā¤ž ā¤•āĨ‹ ā¤ā¤• ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤ŽāĨ‡ā¤œ ā¤ŽāĨ‡ā¤‚ ā¤Ŧā¤žā¤‚ā¤§ā¤¨āĨ‡ ā¤•āĨ€ ā¤ĒāĨā¤°ā¤•āĨā¤°ā¤ŋā¤¯ā¤ž ā¤šāĨˆāĨ¤ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤¨ā¤ŋā¤°āĨā¤Žā¤žā¤Ŗ ā¤ĒāĨā¤°ā¤•āĨā¤°ā¤ŋā¤¯ā¤ž ā¤•āĨ‡ ā¤˛ā¤ŋā¤ [ā¤“ā¤Ēā¤¨ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤¨ā¤ŋā¤ļā¤ŋā¤ā¤Ÿā¤ŋā¤ĩ](https://opencontainers.org) (OCI) ā¤Žā¤žā¤¨ā¤• ā¤•ā¤ž ā¤Ēā¤žā¤˛ā¤¨ ā¤•ā¤°ā¤¨ā¤ž ā¤†ā¤ĩā¤ļāĨā¤¯ā¤• ā¤šāĨˆāĨ¤ ā¤œā¤Ŧ ā¤¤ā¤• ā¤†ā¤‰ā¤Ÿā¤ĒāĨā¤Ÿ ā¤ā¤• ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤° ā¤‡ā¤ŽāĨ‡ā¤œ ā¤šāĨˆ ā¤œāĨ‹ ā¤‡ā¤¸ ā¤Žā¤žā¤¨ā¤• ā¤•ā¤ž ā¤Ēā¤žā¤˛ā¤¨ ā¤•ā¤°ā¤¤āĨ€ ā¤šāĨˆ, ā¤¤ā¤Ŧ ā¤¤ā¤• ā¤•āĨ‹ā¤ˆ ā¤Ģā¤°āĨā¤• ā¤¨ā¤šāĨ€ā¤‚ ā¤Ēā¤Ąā¤ŧā¤¤ā¤ž ā¤•ā¤ŋ ā¤•ā¤ŋā¤¸ ā¤•ā¤‚ā¤ŸāĨ‡ā¤¨ā¤°āĨ€ā¤•ā¤°ā¤Ŗ ā¤‰ā¤Ēā¤•ā¤°ā¤Ŗ ā¤•ā¤ž ā¤‰ā¤Ēā¤¯āĨ‹ā¤— ā¤•ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤¤ā¤ž ā¤šāĨˆāĨ¤ ## ā¤¸ā¤Žā¤¸āĨā¤¯ā¤ž diff --git a/content/hi/infrastructure-as-code.md b/content/hi/infrastructure-as-code.md index a27f1082d8..3f95df5fe5 100644 --- a/content/hi/infrastructure-as-code.md +++ b/content/hi/infrastructure-as-code.md @@ -15,4 +15,4 @@ tags: ["ā¤‡ā¤¨āĨā¤ĢāĨā¤°ā¤žā¤¸āĨā¤ŸāĨā¤°ā¤•āĨā¤šā¤°", "infrastructure", ""] ## ā¤¸ā¤Žā¤žā¤§ā¤žā¤¨ -ā¤ĄāĨ‡ā¤Ÿā¤ž ā¤¸āĨ‡ā¤‚ā¤Ÿā¤° ā¤¸ā¤‚ā¤¸ā¤žā¤§ā¤¨āĨ‹ā¤‚ ā¤œāĨˆā¤¸āĨ‡ ā¤¸ā¤°āĨā¤ĩā¤°, [ā¤˛āĨ‹ā¤Ą ā¤ŦāĨˆā¤˛āĨ‡ā¤‚ā¤¸ā¤°āĨā¤¸](/load-balancer/) ā¤”ā¤° ā¤¸ā¤Ŧā¤¨āĨ‡ā¤Ÿ ā¤•āĨ‹ ā¤•āĨ‹ā¤Ą ā¤•āĨ‡ ā¤°āĨ‚ā¤Ē ā¤ŽāĨ‡ā¤‚ ā¤ĒāĨā¤°ā¤¸āĨā¤¤āĨā¤¤ ā¤•ā¤°ā¤•āĨ‡, ā¤¯ā¤š ā¤‡ā¤‚ā¤ĢāĨā¤°ā¤žā¤¸āĨā¤ŸāĨā¤°ā¤•āĨā¤šā¤° ā¤ŸāĨ€ā¤Ž ā¤•āĨ‹ ā¤¸ā¤­āĨ€ ā¤•āĨ‰ā¤¨āĨā¤Ģā¤ŧā¤ŋā¤—ā¤°āĨ‡ā¤ļā¤¨ ā¤•āĨ‡ ā¤˛ā¤ŋā¤ ā¤¸ā¤¤āĨā¤¯ ā¤•ā¤ž ā¤ā¤• ā¤šāĨ€ ā¤¸āĨā¤°āĨ‹ā¤¤ ā¤°ā¤–ā¤¨āĨ‡ ā¤•āĨ€ ā¤…ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨ‡ā¤¤ā¤ž ā¤šāĨˆ ā¤”ā¤° ā¤‰ā¤¨āĨā¤šāĨ‡ā¤‚ [CI](/hi/continuous-integration/)/[CD](/hi/continuous-delivery/) ā¤Ēā¤žā¤‡ā¤Ēā¤˛ā¤žā¤‡ā¤¨ ā¤ŽāĨ‡ā¤‚ ā¤…ā¤Ēā¤¨āĨ‡ ā¤ĄāĨ‡ā¤Ÿā¤ž ā¤¸āĨ‡ā¤‚ā¤Ÿā¤° ā¤•ā¤ž ā¤ĒāĨā¤°ā¤Ŧā¤‚ā¤§ā¤¨ ā¤•ā¤°ā¤¨āĨ‡ ā¤•āĨ€ ā¤­āĨ€ ā¤…ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨ‡ā¤¤ā¤ž ā¤šāĨˆ, ā¤¸ā¤‚ā¤¸āĨā¤•ā¤°ā¤Ŗ ā¤¨ā¤ŋā¤¯ā¤‚ā¤¤āĨā¤°ā¤Ŗ ā¤”ā¤° ā¤Ēā¤°ā¤ŋā¤¨ā¤ŋā¤¯āĨ‹ā¤œā¤¨ ā¤°ā¤Ŗā¤¨āĨ€ā¤¤ā¤ŋā¤¯āĨ‹ā¤‚ ā¤•āĨ‹ ā¤˛ā¤žā¤—āĨ‚ ā¤•ā¤°ā¤¨ā¤žāĨ¤ +ā¤ĄāĨ‡ā¤Ÿā¤ž ā¤¸āĨ‡ā¤‚ā¤Ÿā¤° ā¤¸ā¤‚ā¤¸ā¤žā¤§ā¤¨āĨ‹ā¤‚ ā¤œāĨˆā¤¸āĨ‡ ā¤¸ā¤°āĨā¤ĩā¤°, ā¤˛āĨ‹ā¤Ą ā¤ŦāĨˆā¤˛āĨ‡ā¤‚ā¤¸ā¤°āĨā¤¸ ā¤”ā¤° ā¤¸ā¤Ŧā¤¨āĨ‡ā¤Ÿ ā¤•āĨ‹ ā¤•āĨ‹ā¤Ą ā¤•āĨ‡ ā¤°āĨ‚ā¤Ē ā¤ŽāĨ‡ā¤‚ ā¤ĒāĨā¤°ā¤¸āĨā¤¤āĨā¤¤ ā¤•ā¤°ā¤•āĨ‡, ā¤¯ā¤š ā¤‡ā¤‚ā¤ĢāĨā¤°ā¤žā¤¸āĨā¤ŸāĨā¤°ā¤•āĨā¤šā¤° ā¤ŸāĨ€ā¤Ž ā¤•āĨ‹ ā¤¸ā¤­āĨ€ ā¤•āĨ‰ā¤¨āĨā¤Ģā¤ŧā¤ŋā¤—ā¤°āĨ‡ā¤ļā¤¨ ā¤•āĨ‡ ā¤˛ā¤ŋā¤ ā¤¸ā¤¤āĨā¤¯ ā¤•ā¤ž ā¤ā¤• ā¤šāĨ€ ā¤¸āĨā¤°āĨ‹ā¤¤ ā¤°ā¤–ā¤¨āĨ‡ ā¤•āĨ€ ā¤…ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨ‡ā¤¤ā¤ž ā¤šāĨˆ ā¤”ā¤° ā¤‰ā¤¨āĨā¤šāĨ‡ā¤‚ [CI](/hi/continuous-integration/)/[CD](/hi/continuous-delivery/) ā¤Ēā¤žā¤‡ā¤Ēā¤˛ā¤žā¤‡ā¤¨ ā¤ŽāĨ‡ā¤‚ ā¤…ā¤Ēā¤¨āĨ‡ ā¤ĄāĨ‡ā¤Ÿā¤ž ā¤¸āĨ‡ā¤‚ā¤Ÿā¤° ā¤•ā¤ž ā¤ĒāĨā¤°ā¤Ŧā¤‚ā¤§ā¤¨ ā¤•ā¤°ā¤¨āĨ‡ ā¤•āĨ€ ā¤­āĨ€ ā¤…ā¤¨āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨ‡ā¤¤ā¤ž ā¤šāĨˆ, ā¤¸ā¤‚ā¤¸āĨā¤•ā¤°ā¤Ŗ ā¤¨ā¤ŋā¤¯ā¤‚ā¤¤āĨā¤°ā¤Ŗ ā¤”ā¤° ā¤Ēā¤°ā¤ŋā¤¨ā¤ŋā¤¯āĨ‹ā¤œā¤¨ ā¤°ā¤Ŗā¤¨āĨ€ā¤¤ā¤ŋā¤¯āĨ‹ā¤‚ ā¤•āĨ‹ ā¤˛ā¤žā¤—āĨ‚ ā¤•ā¤°ā¤¨ā¤žāĨ¤ diff --git a/content/it/application-programming-interface.md b/content/it/application-programming-interface.md new file mode 100644 index 0000000000..0f154460ed --- /dev/null +++ b/content/it/application-programming-interface.md @@ -0,0 +1,26 @@ +--- +title: Application Programming Interface (API) +status: Completed +category: tecnologia +tags: ["architettura", "", ""] +--- + +## Cos'è + +Un'API è un modo tramite il quale dei programmi informatici possono interagire tra di loro. +Proprio come gli umani interagiscono con un sito tramite una pagina web, un'API permette ai programmi informatici di interagire gli uni con gli altri. +A differenza delle interazioni umane, le API hanno delle limitazioni su cosa si puÃ˛ o non si puÃ˛ chiedere loro. +Avere un limite alle interazioni aiuta a creare una comunicazione stabile e funzionale tra programmi. + +## Quali problematiche affronta + +Man mano che le applicazioni diventano sempre piÚ complesse, piccoli cambiamenti nel codice possono avere un effetto dirompente su altre funzionalità. +Le applicazioni hanno bisogno di un approccio modulare alle loro funzionailtà se vogliono crescere e allo stesso tempo mantenere la stabilità. +Senza API mancherebbe un framework per l'interazione tra applicazioni. +Senza un framework condiviso, per le applicazioni è difficile implementare la [scalabilità](/it/scalability/) e integrarsi. + +## In che modo aiuta + +Le API permettono ai programmi o alle applicazioni di interagire e condividere informazioni in modo definito e comprensibile. +Sono gli elementi costitutivi delle moderne applicazioni e forniscono agli sviluppatori un modo per integrarle tra loro. +Ogni volta che si dice che i [microservizi](/it/microservices/) lavorano insieme, si puÃ˛ assumere che interagiscano tramite un'API. diff --git a/content/it/auto-scaling.md b/content/it/auto-scaling.md new file mode 100644 index 0000000000..f5f965e22a --- /dev/null +++ b/content/it/auto-scaling.md @@ -0,0 +1,24 @@ +--- +title: Autoscaling +status: Completed +category: Proprietà +tags: ["infrastruttura", "", ""] +--- + +Per *autoscaling* si intende la capacità di un sistema di essere [scalabile](/it/scalability/) automaticamente, tipicamente in termini di risorse di computazione. +Con un sistema dotato di autoscaling, le risorse sono automaticamente aggiunte al bisogno, cosÃŦ che possano corrispondere alla portata delle richieste degli utenti in quel periodo. +Il processo di autoscaling è variabile, ed è configurabile per modificare le risorse di un sistema in base a piÚ metriche, come la memoria o il tempo di computazione. +I [managed service](/it/managed-service/) sono classicamente associati a funzionalità di autoscaling, dal momento che offrono piÚ opzioni e implementazioni della maggior parte dei sistemi on-premise. + +In passato le infrastrutture e le applicazioni erano pensate perchÊ le loro architetture potessero soddisfare persino i picchi di utilizzo dei sistemi. Questo comportava l'impiego di molte risorse in maniera non elastica, cioè che non variavano accordandosi al numero di richieste degli utenti. +Questa mancanza di elasticità comportava maggiori costi di business e/o perdita di business in caso di disservizi dovuti a un sovraccarico di richieste. + +Sfruttando il cloud, la [virtualizzazione](/it/virtualization/), e la [containerizzazione](/it/containerization/) delle applicazioni e delle rispettive dipendenze, +le organizzazioni possono sviluppare applicazioni scalabili in relazione alla portata delle richieste degli utenti. +Possono inoltre monitorare l'utilizzo delle applicazioni e sfruttare la loro scalabilità, offrendo cosÃŦ un'esperienza ottimale all'utente. Si consideri ad esempio l'aumento dei fruitori che Netflix deve affrontare il venerdÃŦ sera. +Con *Autoscaling out* si intende l'aggiunta dinamica di nuove risorse, come ad esempio: l'aumento del numero di server che permettano piÚ streaming video concorrenti, server che potranno poi essere terminati una volta che il flusso si sarà normalizzato. + +## Voci collegate + +* [Scalabilità orizzontale](/it/horizontal-scaling/) +* [Scalabilità verticale](/it/vertical-scaling/) diff --git a/content/it/bare-metal-machine.md b/content/it/bare-metal-machine.md new file mode 100644 index 0000000000..20cdc46b2a --- /dev/null +++ b/content/it/bare-metal-machine.md @@ -0,0 +1,30 @@ +--- +title: Macchina Bare Metal +status: Completed +category: tecnologia +tags: ["infrastruttura", "", ""] +--- + +## Cos'è + +Bare metal (puro metallo) si riferisce a un computer fisico, piÚ specificamente un server, che ha uno e un solo sistema operativo. +Nell'informatica moderna questa distinzione è importante perchÊ molti, se non la maggior parte, dei server sono [macchine virtuali](/it/virtual-machine/). +Un server fisico è tipicamente un computer di grandi dimensioni con un hardware potente. +Installare un sistema operativo ed eseguire le applicazioni direttamente su quell'hardware fisico senza [virtualizzazione](/it/virtualization/), si definisce come in esecuzione su “bare metal”. + +## Quali problematiche affronta + +Accoppiare un sistema operativo con un computer fisico è il modello originale dell'informatica. +Tutte le risorse del computer fisico sono direttamente disponibili per il sistema operativo, e, senza livelli di virtualizzazione, non si introduce ritardo nella traduzione delle istruzione del sistema operativo all'hardware. + +## In che modo aiuta + +Dedicando tutte le risorse computazionali di un computer a un singolo sistema operativo si fornisce potenzialmente la miglior performance possibile al sistema operativo. +Se è necessario eseguire un carico di lavoro che deve avere un accesso estremamente veloce alle risorse hardware, allora il bare metal puÃ˛ essere la giusta soluzione. + +Nel contesto di [applicazioni cloud native](/it/cloud-native-apps/), +generalmente si pensa alle performance in termini di [scalabilità](/it/scalability/) a un numero piÚ alto di eventi concomitanti, +che possono essere gestiti utilizzando la proprietà di [scalabilità orizzontale](/it/horizontal-scaling/) (aggiungendo piÚ macchine al pool di risorse). +Alcuni carichi di lavoro possono richiedere di utilizzare la [scalabilità verticale](/it/vertical-scaling/) (aggiungendo piÚ potenza a una macchina fisica esistente); +e/o una risposta hardware estremamente veloce, e in questi casi il bare metal è piÚ indicato. +Il bare metal permette anche di regolare l'hardware fisico ed eventualmente anche i driver hardware per aiutare a raggiungere l'obiettivo. diff --git a/content/it/blue-green-deployment.md b/content/it/blue-green-deployment.md new file mode 100644 index 0000000000..3f08325744 --- /dev/null +++ b/content/it/blue-green-deployment.md @@ -0,0 +1,18 @@ +--- +title: Blue Green Deployment +status: Completed +category: concetto +tags: ["metodologia", "applicazione", ""] +--- + +## Cos'è +Il blue-green deployment è una strategia per l’aggiornamento di sistemi in esecuzione con un disservizio minimo. L’operatore ha in esecuzione due ambienti, denominati “blue” e “green”. Di questi, il primo è effettivamente in produzione (ed è la versione che tutti gli utenti stanno utilizzando), mentre il secondo è in aggiornamento. Una volta che i test sono conclusi sull’ambiente non attivo (il “green”), il traffico verso produzione viene dirottato su quest’ultimo (spesso con l’utilizzo di un [load balancer](/it/load-balancer/)). Si noti che con blue-green deployment si intende spesso lo scambio di interi ambienti, compresi molti [servizi](/it/service/), in blocco. Il termine è a volte usato impropriamente in relazione a singoli servizi in un sistema. Per evitare queste ambiguità, si preferisce usare il termine “zero-downtime deployment” (a impatto nullo) quando ci si riferisce alle singole componenti. + + +## Quali problematiche affronta +I blue-green deployment consentono di ridurre al minimo il disservizio nel caso in cui si debba rilasciare una nuova versione di un software che manca di retrocompatibilità. Per esempio, un deployment di tipo blue-green è indicato nel caso di un negozio online che consista in un sito web e un database. Se il database ha bisogno di un aggiornamento, ma questa nuova versione non funziona con la versione corrente del sito web (e viceversa), in questo caso bisogna cambiare entrambe nello stesso momento. E se questo viene fatto in ambiente di produzione, l’utente noterà un disservizio. + + +## In che modo aiuta +Il blue-green deployment è la strategia appropriata per software non [cloud-native](/it/cloud-native-apps/) che necessitano di un aggiornamento con un disservizio minimo. In ogni caso il suo utilizzo è solitamente un segnale che il software ha bisogno di essere reingegnerizzato, cosÃŦ da poter aggiornare le sue componenti singolarmente. + diff --git a/content/it/cloud-computing.md b/content/it/cloud-computing.md new file mode 100644 index 0000000000..589ed273c7 --- /dev/null +++ b/content/it/cloud-computing.md @@ -0,0 +1,24 @@ +--- +title: Cloud Computing +status: Completed +category: Concetto +tags: ["infrastruttura", "fondamenti", ""] +--- + +## Cos'è + +Il cloud computing è un modello che offre risorse computazionali come CPU, rete e capacità di archiviazione su richiesta attraverso internet. +Il cloud computing offre agli utenti la possibilità di accedere e utilizzare potenza di calcolo da remoto. +I cloud provider come AWS, GCP, Azure, DigitalOcean e altri offrono a terze parti la possibilità di noleggiare l'accesso a risorse computazionali in diverse località geografiche. + +## Quali problematiche affronta + +Tradizionalmente, le organizzazioni dovevano affrontare due problemi principali quando dovevano espandere il loro utilizzo di potenza di calcolo. +Potevano o acquistare, supportare, progettare, e pagare le strutture per ospitare i loro server fisici, oppure potevano espandere e mantenere quelle strutture. +Il cloud computing permette alle organizzazioni di affidare una porzione delle loro necessità di calcolo ad un'altra organizzazione. + +## In che modo aiuta + +I cloud provider offrono alle organizzazioni la possibilità di noleggiare risorse on-demand e di pagare in base all'utilizzo. +Questo ha permesso due grandi innovazioni: le organizzazioni possono focalizzarsi sul loro prodotto o servizio senza aspettare, pianificare e investire risorse su nuove strutture fisiche. Possono [scalare](/it/scalability/) a seconda della necessità e su richiesta. +Il cloud computing permette alle organizzazioni di adottare tutta (o soltanto) l'infrastruttura di cui hanno bisogno. diff --git a/content/it/container-orchestration.md b/content/it/container-orchestration.md new file mode 100644 index 0000000000..6a9a7e55e4 --- /dev/null +++ b/content/it/container-orchestration.md @@ -0,0 +1,23 @@ +--- +title: Container Orchestration +status: Completed +category: Concetto +--- + +## Cos'è +Per orchestrazione dei [container](/it/container/) si intende la gestione e l'automazione del ciclo di vita delle applicazioni containerizzate in ambienti dinamici. +L'orchestrazione dei container viene effettuata tramite l'utilizzo di un orchestratore di container (nella maggior parte dei casi [Kubernetes](/it/kubernetes)), che consente di eseguire i processi di deployment (distribuzione), (auto)scaling (scalabilità), auto-healing (riparazione) e monitoraggio. +Il concetto di orchestrazione è preso in prestito dal mondo musicale ed utilizzato come una metafora: +lo strumento di orchestrazione dirige i container come un direttore d'orchestra musicale, assicurandosi che ogni container (o musicista) faccia ciÃ˛ che dovrebbe fare. + + + +## Quali problematiche affronta +Gestire manualmente i [microservizi](/it/microservices), la sicurezza e la comunicazione di rete su larga scala - e i [sistemi distribuiti](/it/distributed-systems) in generale - è difficile, se non impossibile. +L'orchestrazione dei container consente agli utenti di automatizzare tutte queste attività di gestione. + +## In che modo aiuta +Gli strumenti di orchestrazione dei container consentono agli utenti di stabilire lo stato di un sistema. +Innanzitutto, dichiarano come dovrebbe apparire (ad esempio, x container, y pod, ecc.). +Lo strumento di orchestrazione monitorerà quindi automaticamente l'infrastruttura e la correggerà se lo stato devia da quello dichiarato (ad esempio, avvierà un nuovo container se uno dovesse arrestarsi in modo anomalo). +Questa automazione semplifica molte delle attività operative dei team di engineering, che risulterebbero altrimenti profondamente manuali e complesse. Tra queste figurano: l'assegnazione di risorse, la distribuzione, lo scaling (sia in termini di aggiunta che di rimozione di nodi), la connettività, il bilanciamento del traffico e altre attività. diff --git a/content/it/containerization.md b/content/it/containerization.md index 4a19038b8e..199af2f549 100644 --- a/content/it/containerization.md +++ b/content/it/containerization.md @@ -7,7 +7,7 @@ tags: ["applicazione", "", ""] ## Cos'è -La containerizzazione è il processo di accorpamento di un'applicazione e le sue dipendenze in un'[immagine container](/it/container-image/). Il processo di costruzione di un container richiede l'aderenza agli standard dell'[Open Container Initiative](https://opencontainers.org). PurchÊ il risultato finale sia un'immagine container che aderisce a questi standard, lo strumento utilizzato per la containerizzazione non ha importanza. +La containerizzazione è il processo di accorpamento di un'applicazione e le sue dipendenze in un'immagine container. Il processo di costruzione di un container richiede l'aderenza agli standard dell'[Open Container Initiative](https://opencontainers.org). PurchÊ il risultato finale sia un'immagine container che aderisce a questi standard, lo strumento utilizzato per la containerizzazione non ha importanza. ## Quali problematiche affronta @@ -15,4 +15,4 @@ Prima che i container si diffondessero, le organizzazioni si affidavano alle [ma ## In che modo aiuta -Le immagini container sono leggere (a differenza delle macchine virtuali tradizionali) e il processo di containerizzazione richiede un file con un elenco di dipendenze. Questo file puÃ˛ prevedere un [controllo di versione](/it/version-control/) e il processo di creazione puÃ˛ essere automatizzato, permettendo all'organizzazione di concentrarsi su altre priorità, mentre i processi automatizzati si occupano della creazione. L'immagine container è memorizzata con un identificatore univoco legato al suo esatto contenuto e alla sua configurazione. PoichÊ i container vengono pianificati e riprogrammati, vengono sempre ripristinati allo stato iniziale, eliminando cosÃŦ la deriva della configurazione. +Le immagini container sono leggere (a differenza delle macchine virtuali tradizionali) e il processo di containerizzazione richiede un file con un elenco di dipendenze. Questo file puÃ˛ prevedere un controllo di versione e il processo di creazione puÃ˛ essere automatizzato, permettendo all'organizzazione di concentrarsi su altre priorità, mentre i processi automatizzati si occupano della creazione. L'immagine container è memorizzata con un identificatore univoco legato al suo esatto contenuto e alla sua configurazione. PoichÊ i container vengono pianificati e riprogrammati, vengono sempre ripristinati allo stato iniziale, eliminando cosÃŦ la deriva della configurazione. diff --git a/content/it/containers-as-a-service.md b/content/it/containers-as-a-service.md index b2aa6eb537..13abf6ebe2 100644 --- a/content/it/containers-as-a-service.md +++ b/content/it/containers-as-a-service.md @@ -1,6 +1,6 @@ --- title: Containers as a Service -status: Completed +status: Deprecated category: Tecnologia tags: ["platform", "", ""] --- @@ -17,5 +17,5 @@ Senza servizi CaaS, i team di sviluppo software devono distribuire, gestire e mo ## In che modo aiuta -Quando si distribuiscono applicazioni containerizzate su una piattaforma CaaS, gli utenti acquisiscono visibilità sulle performance del sistema attraverso aggregazioni di log e strumenti di monitoraggio. I servizi CaaS includono anche funzionalità incorporate per l'[auto scaling](/it/auto-scaling/) e la gestione dell'orchestrazione. CiÃ˛ permette ai team di costruire [sistemi distribuiti](/it/distributed-systems/) ad alta visibilità e alta disponibilità. Inoltre, consentendo rapide distribuzioni, i servizi CaaS aumentano la velocità dei team di sviluppo. Mentre i container assicurano un obiettivo di distribuzione uniforme, i servizi CaaS diminuiscono i costi operativi a livello ingegneristico riducendo le risorse [DevOps](/it/devops/) necessarie per gestire una distribuzione. +Quando si distribuiscono applicazioni containerizzate su una piattaforma CaaS, gli utenti acquisiscono visibilità sulle performance del sistema attraverso aggregazioni di log e strumenti di monitoraggio. I servizi CaaS includono anche funzionalità incorporate per l'[autoscaling](/it/auto-scaling/) e la gestione dell'orchestrazione. CiÃ˛ permette ai team di costruire [sistemi distribuiti](/it/distributed-systems/) ad alta visibilità e alta disponibilità. Inoltre, consentendo rapide distribuzioni, i servizi CaaS aumentano la velocità dei team di sviluppo. Mentre i container assicurano un obiettivo di distribuzione uniforme, i servizi CaaS diminuiscono i costi operativi a livello ingegneristico riducendo le risorse [DevOps](/it/devops/) necessarie per gestire una distribuzione. diff --git a/content/it/continuous-delivery(CD).md b/content/it/continuous-delivery.md similarity index 96% rename from content/it/continuous-delivery(CD).md rename to content/it/continuous-delivery.md index 2e4df57c16..765c2fe3b4 100644 --- a/content/it/continuous-delivery(CD).md +++ b/content/it/continuous-delivery.md @@ -11,4 +11,4 @@ La _Continuous Delivery_ (rilascio continuo), spesso abbreviata in CD, è un ins La distribuzione di aggiornamenti [affidabili](/it/reliability/) diventa un problema su vasta scala. Idealmente, bisognerebbe distribuire piÚ frequentemente per offrire un maggiore valore agli utenti finali. Tuttavia, farlo manualmente si traduce in costi di transazione elevati per ogni modifica. Storicamente, per evitare questi costi, le organizzazioni hanno rilasciato meno frequentemente, implementando piÚ modifiche contemporaneamente e aumentando il rischio che qualcosa andasse storto. ## In che modo aiuta -Le strategie CD creano un processo completamente automatizzato fino in produzione, che testa e distribuisce il software utilizzando varie strategie di distribuzione come le versioni [canary](/it/canary_deployment/) o [blue-green](/it/blue_green_deployment/). CiÃ˛ consente agli sviluppatori di distribuire codice frequentemente, garantendo loro la tranquillità che la nuova revisione sia stata testata. In genere, nelle strategie CD si preferisce lo sviluppo basato su _trunk_ al posto di quello su _feature branching_ o _pull requests_. \ No newline at end of file +Le strategie CD creano un processo completamente automatizzato fino in produzione, che testa e distribuisce il software utilizzando varie strategie di distribuzione come le versioni [canary](/it/canary-deployment/) o [blue-green](/it/blue-green-deployment/). CiÃ˛ consente agli sviluppatori di distribuire codice frequentemente, garantendo loro la tranquillità che la nuova revisione sia stata testata. In genere, nelle strategie CD si preferisce lo sviluppo basato su _trunk_ al posto di quello su _feature branching_ o _pull requests_. \ No newline at end of file diff --git a/content/it/continuous-deployment.md b/content/it/continuous-deployment.md new file mode 100644 index 0000000000..1f50975230 --- /dev/null +++ b/content/it/continuous-deployment.md @@ -0,0 +1,37 @@ +--- +title: Continuous Deployment (CD) +status: Completed +category: Concetto +tags: ["metodologia", "applicazione", ""] +--- + +## Cos'è + +Il Continuous deployment, o Distribuzione Continua, spesso abbreviato CD, è il passo successivo di [continuous delivery](/it/continuous-delivery/), o +ed esegue l'installazione del sofware finito direttamente in produzione. +Il continuous deployment (CD) va di pari passo con la [continuous integration](/it/continuous-integration/) (CI), +e il processo nel suo insieme viene spesso indicato come CI/CD. +La fase di CI verifica se le modifiche apportate a una determinata applicazione sono valide, +ed la fase CD distribuisce automaticamente le modifiche al codice attraverso i vari ambienti di un'organizzazione, dai test alla produzione. + +## Quali problematiche affronta + +Il rilascio di nuove versioni di software puÃ˛ essere un processo laborioso e soggetto a errori; +peraltro, spesso le organizzazioni vogliono affrontarlo non troppo frequentemente per evitare incidenti in produzione +e ridurre il numero di volte in cui i tecnici devono essere disponibili al di fuori del normale orario lavorativo. +I modelli tradizionali di distribuzione del software portano le organizzazioni in un circolo vizioso +in cui il processo di rilascio del software non soddisfa le esigenze organizzative in termini di velocità di rilascio +di correzzioni applicative e nel rilascio delle nuove funzionalità. + +## In che modo aiuta + +Automatizzando il ciclo di rilascio e costringendo le organizzazioni a rilasciare in produzione piÚ frequentemente, +il CD fa per i team operativi quello che il CI ha fatto per i team di sviluppo. +In particolare, obbliga i team operativi ad automatizzare le parti complesse e soggette a errori dei deployment in produzione, +riducendo il rischio complessivo. +Inoltre, migliora la capacità delle organizzazioni di accettare e adattarsi ai cambiamenti in produzione, portando conseguentemente a una maggiore stabilità. + +## Termini correlati + +* [Continuous Integration](/it/continuous-integration/) +* [Continuous Delivery](/it/continuous-delivery/) diff --git a/content/it/continuous-integration.md b/content/it/continuous-integration.md new file mode 100644 index 0000000000..a2f4ce81d3 --- /dev/null +++ b/content/it/continuous-integration.md @@ -0,0 +1,34 @@ +--- +title: Continuous integration (CI) +status: Completed +category: Concetto +tags: ["metodologia", "applicazione", ""] +--- + +## Cos'è + +Continuous integration, spesso abbreviato CI, è la pratica di integrare le modifiche al codice il piÚ regolarmente possibile. +La CI è il prerequisito per la [continuous delivery](/it/continuous-delivery/) (CD). +Tradizionalmente, il processo di CI inizia quando le modifiche al codice vengono committate in un sistema di controllo del codice sorgente (Git, Mercurial o Subversion) +e termina con un artefatto testato pronto per essere consumato da un sistema di CD. + +## Quali problematiche affronta + +I software sono spesso estesi e complessi, con numerosi sviluppatori che li mantengono e aggiornano. +Lavorando in parallelo su diverse parti del sistema, +gli sviluppatori potrebbero apportare modifiche in conflitto e danneggiare inavvertitamente il lavoro l'uno dell'altro. +Inoltre, con piÚ sviluppatori che lavorano allo stesso progetto, +qualsiasi attività quotidiana come il test e la misura della qualità del codice dovrebbe essere ripetuta da ogni sviluppatore, sprecando tempo. + +## In che modo aiuta + +La CI controlla automaticamente che le modifiche al codice si inseriscano in modo pulito ogni volta che uno sviluppatore finalizza una modifica. +È una pratica molto diffusa utilizzare il server CI per eseguire controlli di qualità del codice, test e persino installazioni. +In questo modo, diventa una concreta implementazione del controllo qualità all'interno dei team. +Il processo di CI consente ai team di software di identificare chiaramente ogni commit di codice come un fallimento o come un valido candidato + al rilascio in produzione. + +## Termini correlati + +* [Continuous Delivery](/it/continuous-delivery/) +* [Continuous Deployment](/it/continuous-deployment/) diff --git a/content/it/data-center.md b/content/it/data-center.md new file mode 100644 index 0000000000..bbdfad62a4 --- /dev/null +++ b/content/it/data-center.md @@ -0,0 +1,28 @@ +--- +title: Data center +status: Completed +category: Tecnologia +tags: ["infrastruttura", "fondamentali", ""] +--- + +## Cos'è + +Un data center è un edificio o una struttura specializzata appositamente progettata per ospitare piÚ computer, spesso server. +I data center sono abitualmente collegati a linee internet ad alta velocità, soprattutto quando sono focalizzati sul [cloud computing](/it/cloud-computing/). +Gli edifici che ospitano i data center sono attrezzati per mantenere il servizio anche durante eventi avversi, inclusi generatori che forniscono energia durante le interruzioni e potenti sistemi di aria condizionata che mantengono una temperatura controllata, proteggendo i computer dal calore che producono lavorando. + +## Quali problematiche affronta + +Prima che i data center si diffondessero alla fine degli anni '90, i computer si distinguevano principalmente tra quelli dedicati a compiti specifici e quelli utilizzati dalle persone per svolgere il proprio lavoro. +I computer tuttavia hanno risorse limitate (disco, RAM e CPU). Questo significa che le applicazioni in esecuzione su di essi hanno gli stessi vincoli, limitando i tipi di applicazioni che possono eseguire. +Prima dei data center, la scalabilità dell'applicazione era limitata dalla capacità di calcolo del computer su cui era in esecuzione. +Se perÃ˛ pensiamo ad applicazioni soggette ad un utilizzo intensivo ed esteso come Gmail o Netflix (l'applicazione, non l'interfaccia utente che hai sul tuo telefono o computer), +queste hanno bisogno di piÚ capacità di elaborazione di quanta ne possa fornire un singolo computer. + +## In che modo aiuta + +Collegando fra di loro vari server, gli utenti possono creare un [sistema distribuito](/it/distributed-systems/) che funziona come un supercomputer. +Utilizzando la potenza di diverse macchine, ora possiamo eseguire applicazioni molto piÚ grandi o elaborare attività computazionali molto piÚ elevate. +All'interno dei data center vengono eseguite la maggior parte delle applicazioni che utilizziamo quotidianamente. +I [cloud pubblici](it/cloud-computing) sono data center che affittano la capacità computazionale ai propri clienti. +Durante gli ultimi anni, abbiamo assistito a un passaggio dai data center di proprietà delle aziende al cloud. \ No newline at end of file diff --git a/content/it/debugging.md b/content/it/debugging.md index cd3ca37513..4176cea303 100644 --- a/content/it/debugging.md +++ b/content/it/debugging.md @@ -1,6 +1,6 @@ --- title: Debugging -status: Completed +status: Deprecated category: concetto tags: ["applicazione", "", ""] --- diff --git a/content/it/ebpf.md b/content/it/ebpf.md new file mode 100644 index 0000000000..72eb1cbe82 --- /dev/null +++ b/content/it/ebpf.md @@ -0,0 +1,37 @@ +--- +title: eBPF +status: Completed +category: architettura +--- + +## Cos'è + +eBPF, per esteso "Berkeley Packet Filter", è una tecnologia che consente di eseguire piccoli programmi o script in sandbox nello spazio kernel di un sistema Linux, +senza dover modificare il codice sorgente del kernel o caricare moduli del kernel Linux specifici. +Un sistema Linux ha due spazi di esecuzione dei processi: il kernel e lo spazio utente. +Il kernel rappresenta il nucleo del sistema operativo ed è l'unica parte con accesso illimitato all'hardware. +Le applicazioni risiedono nello spazio utente e, quando necessitano di autorizzazioni piÚ elevate, inviano una richiesta al kernel. +Per le applicazioni che richiedono piu previlegi, come l'accesso diretto all'hardware, +il kernel puÃ˛ essere esteso tramite l'approccio noto come "moduli kernel Linux". +Questo approccio estende la funzionalità predefinita del kernel, consentendo alle applicazioni un accesso piÚ profondo ai componenti sottostanti. +Tuttavia, questo approccio introduce anche rischi di sicurezza, rendendo eBPF un'alternativa interessante. + +## Quali problematiche affronta +In genere, le applicazioni vengono eseguite nello spazio utente e, se l'applicazione richiede alcuni privilegi dal kernel (ad esempio per accedere a una parte hardware), +lo richiede al kernel tramite una "chiamata di sistema". +Nella maggior parte dei casi, questo approccio funziona bene. Ci sono perÃ˛ dei casi, come ad esempio nell'utilizzo di funzionalità di osservabilità, sicurezza e networking, +in cui gli sviluppatori richiedono una maggiore flessibilità per l'accesso al sistema a basso livello. +A questo scopo, possiamo utilizzare i moduli del kernel Linux, che estendono la base del kernel senza richiederne la modifica del codice sorgente. +Sebbene ci siano vantaggi nell'utilizzo dei moduli del kernel Linux, questo approccio introduce anche rischi per la sicurezza: +operando nello spazio kernel, in caso di problemi i moduli del kernel Linux possono causare il crash del kernel stesso e, quando il kernel si blocca, si blocca anche l'intera macchina. +Inoltre, i moduli del kernel hanno privilegi elevati e accesso diretto alle risorse di sistema. Se non sono adeguatamente protetti, gli aggressori possono sfruttarli. + +## In che modo aiuta +eBPF offre un ambiente controllato e delimitato per l'esecuzione di programmi definiti dall'utente rispetto ai moduli del kernel Linux. +Viene eseguito in un ambiente sandbox all'interno del kernel, fornendo isolamento e mitigazione dei rischi. +Se una vulnerabilità o un difetto vengono sfruttate in un programma eBPF, l'impatto è generalmente limitato all'ambiente sandbox. +Inoltre, prima che un programma eBPF possa iniziare a essere eseguito nel kernel, deve superare alcune verifiche. +All'interno del kernel, un componente chiamato "eBPF verifier", controlla il programma eBPF per potenziali violazioni di sicurezza, +come l'accesso alla memoria fuori dai limiti, i loop infiniti e le funzioni del kernel non autorizzate. +In questo modo, si assicura che il programma non entri in un loop infinito e causi un crash del kernel. +Questi controlli di sicurezza rendono eBPF un'opzione piÚ sicura per eseguire applicazioni nel kernel Linux rispetto ai moduli del kernel Linux. \ No newline at end of file diff --git a/content/it/event-streaming.md b/content/it/event-streaming.md new file mode 100644 index 0000000000..87271a25b5 --- /dev/null +++ b/content/it/event-streaming.md @@ -0,0 +1,30 @@ +--- +title: Event Streaming +status: Completed +category: Concetto +--- + +## Cos'è + +L'_event streaming_ è un approccio nel quale un software invia i dati di un evento da un'applicazione a un'altra per comunicare costantemente cosa stanno facendo. +Si immagini un servizio che trasmetta ogni cosa che faccia a tutti gli altri servizi. +Ogni attività intrapresa da un servizio è chiamata evento, da cui _event streaming_. +Per esempio, NASDAQ ottiene aggiornamenti sui prezzi di azioni e materie prime ogni secondo. +Se si ha un'applicazione che monitora uno specifico insieme di azioni, ci si aspetta di ricevere quelle informazioni in tempo quasi reale. +Yahoo! Finance, per esempio, fornisce un'[API](/it/application-programming-interface/) che recupera i dati da NASDAQ e invia (o trasmette) quelle informazioni (o eventi) dalla loro applicazione a qualunque applicazione che si iscrive al servizio. +I dati inviati, insieme ai loro cambiamenti (il prezzo delle azioni) sono gli eventi, mentre il processo di consegnarli ad un'applicazione è l'_event streaming_. + +## Quali problematiche affronta + +Tradizionalmente, Yahoo! Finance avrebbe usato singole richieste TCP. +Questo sarebbe stato molto inefficiente, in quanto avrebbe richiesto la creazione di una connessione per ogni evento. +Man mano che i dati diventano piÚ in tempo reale, rendere scalabile questo tipo di soluzione diventa inefficiente. +Aprire una connessione una sola volta e permettere agli eventi di fluire è una soluzione ideale per il funzionamento in tempo reale. +La quantità di dati generati sta crescendo in modo esponenziale e contestualmente il loro stato è in continuo cambiamento. Gli sviluppatori e gli utenti devono essere in grado di visualizzare tali dati in tempo pressochÊ reale. + +## In che modo aiuta + +L'_event streaming_ permette di comunicare i cambiamenti ai dati dalla sorgente al destinatario. +Invece di attendere che i servizi richiedano l'informazione, un servizio trasmette costantemente tutti i suoi eventi (o attività). +Non si preoccupa di ciÃ˛ che accade alle informazioni stesse. +Si occupa soltanto di fare quello che deve e di trasmetterlo, rimanendo cosÃŦ completamente indipendente da qualunque altro servizio. diff --git a/content/it/firewall.md b/content/it/firewall.md index 1bc4cd1e55..d0bf247c63 100644 --- a/content/it/firewall.md +++ b/content/it/firewall.md @@ -1,6 +1,6 @@ --- title: Firewall -status: Completed +status: Deprecated category: Tecnologia tags: ["sicurezza", "", ""] --- diff --git a/content/it/function-as-a-service.md b/content/it/function-as-a-service.md new file mode 100644 index 0000000000..1ef489a320 --- /dev/null +++ b/content/it/function-as-a-service.md @@ -0,0 +1,37 @@ +--- +title: Function as a Service (FaaS) +status: Completed +category: Tecnologia +tags: ["infrastruttura", "", ""] +--- + +## Cos'è + +Function as a Service (FaaS) è un tipo di [servizio](/it/service/) di [cloud computing](/it/cloud-computing/) [serverless](/it/serverless/) +che consente l'esecuzione di codice in risposta agli eventi senza mantenere la complessa infrastruttura +tipicamente associata alla creazione e all'avvio di applicazioni a [microservizi](/it/microservices/). +Con FaaS, gli utenti gestiscono solo funzioni e dati mentre il provider cloud gestisce l'applicazione. +CiÃ˛ consente agli sviluppatori di ottenere le funzioni di cui hanno bisogno senza pagare per i servizi quando il codice non è in esecuzione. + + +## Quale problema affronta + +In uno scenario tradizionale on-premise, un'azienda gestisce e mantiene il proprio data center. +L'azienda deve investire in server, storage, software e altre tecnologie +e potenzialmente assumere uno staff IT o dei consulenti per l'acquisto, la gestione e l'aggiornamento di tutte le apparecchiature e le licenze. +Il data center deve essere costruito per soddisfare i picchi di domanda, anche quando i carichi di lavoro diminuiscono e quelle risorse restano inattive. +Viceversa, se l'azienda cresce rapidamente, il reparto IT potrebbe avere difficoltà a tenere il passo. +In base a un modello di cloud computing standard [Infrastructure-as-a-Service (IaaS)](/it/infrastructure-as-a-service/), +gli utenti preacquistano unità di capacità, il che significa pagare un provider di cloud pubblico per componenti server sempre attivi su cui eseguire le proprie app. +È responsabilità dell'utente aumentare la capacità del server durante i periodi di forte domanda +e ridimensionare quando tale capacità non è piÚ necessaria. +Insomma, l'infrastruttura cloud necessaria per eseguire un'app rimane attiva anche quando l'app non viene utilizzata. + + +## In che modo aiuta + +FaaS offre agli sviluppatori un'[astrazione](/it/abstraction/) per l'esecuzione di applicazioni Web in risposta a eventi senza gestire i server. +Ad esempio, il caricamento di un file potrebbe attivare un codice personalizzato che transcodifica il file in vari formati. +L'infrastruttura FaaS ridimensionerà automaticamente il codice per un uso intenso, +e lo sviluppatore non dovrà dedicare tempo o risorse alla creazione del codice per garantirne la [scalabilità](/it/scalability/). +La fatturazione si basa solo sul tempo di calcolo, il che significa che le aziende non devono pagare quando le funzioni non sono in uso. diff --git a/content/it/immutable-infrastructure.md b/content/it/immutable-infrastructure.md index a947b2e813..7790d1b87e 100644 --- a/content/it/immutable-infrastructure.md +++ b/content/it/immutable-infrastructure.md @@ -20,6 +20,6 @@ Il funzionamento di un sistema di questo tipo diventa molto piÚ semplice perchÊ gli amministratori possono fare delle ipotesi su di esso. Dopotutto, sanno che nessuno puÃ˛ aver commesso errori o apportato cambiamenti che si è dimenticato di comunicare. L'infrastruttura immutabile va di pari passo con l'[infrastructure as code](/it/infrastructure-as-code/), -nella quale tutte le automazioni necessarie per la creazione dell'infrastruttura sono conservate in un [controllo di versione](/it/version-control/) (ad esempio, Git). +nella quale tutte le automazioni necessarie per la creazione dell'infrastruttura sono conservate in un controllo di versione (ad esempio, Git). Questa combinazione di immutabilità e controllo di versione significa che c'è un persistente registro dei log di ogni modifica autorizzata al sistema. diff --git a/content/it/kubernetes.md b/content/it/kubernetes.md new file mode 100644 index 0000000000..d2e9c14c19 --- /dev/null +++ b/content/it/kubernetes.md @@ -0,0 +1,35 @@ +--- +title: Kubernetes +status: Completed +category: tecnologia +tags: ["infrastruttura", "fondamenti", ""] +--- + +## Che cos'è + +Kubernetes, spesso abbreviato in K8s, è un orchestratore di container open source. +Automatizza il ciclo di vita delle applicazioni containerizzate su infrastrutture moderne, fungendo da "sistema operativo per datacenter" che gestisce applicazioni su un [sistema distribuito](/it/distributed-systems/). + +Kubernetes esegue i [container](/it/container/) sui [nodi](/it/nodes/) all'interno di un [cluster](/it/cluster/), raggruppando diverse risorse di infrastruttura come i load balancer, archiviazione persistente, ecc. per eseguire applicazioni containerizzate. + +Kubernetes abilita automazione ed estensibilità, permettendo agli utenti di rilasciare applicazioni in modo dichiarativo (vedi sotto) in maniera riproducibile. +Le capacità di Kubernetes possono essere estese attraverso le sue [API](/it/application-programming-interface/), permettendo agli utilizzatori esperti di Kubernetes di sfruttare le sue capacità di automazione secondo le loro necessità. + +## Quali problematiche affronta + +L'automazione dell'infrastruttura e la gestione delle configurazioni in modo dichiarativo sono concetti importanti da diverso tempo, ma sono diventati sempre piÚ importanti da quando il [cloud computing](/it/cloud-computing/) ha cominciato a diffondersi. +Man mano che la richiesta di risorse computazionali aumenta e le organizzazioni hanno bisogno di fornire piÚ capacità operative con meno ingegneri, servono nuove tecnologie e nuovi metodi di lavoro. + +## In che modo aiuta + +Analogamente agli strumenti tradizionali di [infrastructure as code](/it/infrastructure-as-code/), Kubernetes aiuta con l'automazione e ha il vantaggio di lavorare con i container. +I container sono meno inclini ai disallineamenti di configurazione rispetto a macchine [virtuali](/it/virtual-machine/) o fisiche. + +Inoltre, Kubernetes lavora in maniera dichiarativa: ciÃ˛ significa che invece di avere operatori che istruiscono la macchina su come fare qualcosa, descrivono — di solito tramite file manifest (per esempio YAML) — come l'infrastruttura dovrebbe essere. +Kubernetes poi si occupa del "come" renderla tale. +Questo permette a Kubernetes di essere altamente compatibilie con l'infrastructure as code. + +Kubernetes ha anche capacità di [self-healing](/it/self-healing/). +Lo stato reale del cluster corrisponderà sempre con lo stato desiderato dell'operatore. +Se Kubernetes individua una disparità rispetto a quanto scritto nel file manifest, un controller Kubernetes si attiva e lo sistema. +Mentre l'infrastruttura utilizzata da Kubernetes puÃ˛ essere in continua evoluzione, Kubernetes si adatta costantemente e automaticamente ai cambiamenti e garantisce la corrispondenza con lo stato desiderato. diff --git a/content/it/managed-services.md b/content/it/managed-services.md index ae018c38b7..9784484516 100644 --- a/content/it/managed-services.md +++ b/content/it/managed-services.md @@ -1,12 +1,12 @@ --- title: Managed services -status: Completed +status: Deprecated category: Tecnologia --- ## Cos'è -Con _managed service_ si intende un'offerta di servizio da parte di un fornitore che comprende un software assieme alla sua gestione ordinaria e manutenzione. Ne sono esempi i servizi di [Database as a Service](/it/database-as-a-service/) come RDS di Amazon, o i servizi esterni di monitoring come Datadog. +Con _managed service_ si intende un'offerta di servizio da parte di un fornitore che comprende un software assieme alla sua gestione ordinaria e manutenzione. Ne sono esempi i servizi di Database as a Service come RDS di Amazon, o i servizi esterni di monitoring come Datadog. ## Quali problematiche affronta diff --git a/content/it/multitenancy.md b/content/it/multitenancy.md index 9d8d0150ac..b8a81a0649 100644 --- a/content/it/multitenancy.md +++ b/content/it/multitenancy.md @@ -22,4 +22,4 @@ Con un software multitenant, i tenant condividono le risorse di un'installazione ## Termini correlati -Multitenancy non è un sinonimo di [SaaS](/it/software-as-a-service/), nonostante sia molto comune per un SaaS essere multitenant e anche di offrire la multitenancy come uno dei suoi principali vantaggi. +Multitenancy non è un sinonimo di SaaS, nonostante sia molto comune per un SaaS essere multitenant e anche di offrire la multitenancy come uno dei suoi principali vantaggi. diff --git a/content/it/mutual-transport-layer-security.md b/content/it/mutual-transport-layer-security.md new file mode 100644 index 0000000000..9b19203c92 --- /dev/null +++ b/content/it/mutual-transport-layer-security.md @@ -0,0 +1,26 @@ +--- +title: Mutual Transport Layer Security (mTLS) +status: Completed +category: Concetto +tags: ["sicurezza", "networking", ""] +--- + +## Cos'è + +Il Mutual TLS (mTLS) è una tecnica utilizzata per autenticare e criptare i messaggi inviati tra due [servizi](/it/service/). +Il Mutual TLS è il protocollo [Transport Layer Security](/it/transport-layer-security/) (TLS) standard, +che permette la validazione dell'identità di entrambi gli estremi della connessione. + + +## Quali problematiche affronta + +I [microservizi](/it/microservices/) comunicano tramite una rete e, +proprio come in una rete Wi-Fi domestica, le comunicazioni in transito su quella rete possono essere violate. +Il mTLS assicura che nessun soggetto non autorizzato possa mettersi in ascolto o impersonare richieste legittime. + +## In che modo aiuta + +Il mTLS garantisce che il traffico sia sicuro e affidabile in entrambe le direzioni tra un client e il server,fornendo un livello di sicurezza per gli utenti che accedono a una rete o a delle applicazioni. +Inoltre, verifica le connessioni con dispositivi client che non seguono un processo di accesso, come i dispositivi Internet of Things (IoT). + +Gli attacchi come quelli on-path, spoofing, credential stuffing, brute force, ecc. possono essere prevenuti dal mTLS. diff --git a/content/it/platform-as-a-service.md b/content/it/platform-as-a-service.md index 744b72d5a6..5d8ed93aa9 100644 --- a/content/it/platform-as-a-service.md +++ b/content/it/platform-as-a-service.md @@ -1,6 +1,6 @@ --- title: Platform as a Service (PaaS) -status: Completed +status: Deprecated category: Tecnologia --- diff --git a/content/it/pod.md b/content/it/pod.md new file mode 100644 index 0000000000..1ccedce064 --- /dev/null +++ b/content/it/pod.md @@ -0,0 +1,33 @@ +--- +title: Pod +status: Completed +category: Concetto +tags: ["infrastruttura", "fondamenti", ""] +--- + +## Cos'è + +In un ambiente [Kubernetes](/it/kubernetes/), un pod è la piÚ piccola unità di base di un'applicazione; +rappresenta un blocco di costruzione essenziale per l'installazione e la gestione di applicazioni containerizzate. +Ogni pod contiene una singola istanza applicativa, e puÃ˛ contenere uno o piÚ [container](/it/container/). +Kubernetes gestisce i pod come parte di un deployment e se necessario puÃ˛ eseguire lo scaling [verticale](/it/vertical-scaling/) o [orizzontale](/it/horizontal-scaling/) dei pod. + +## Quali problematiche affronta + +Sebbene i container agiscano generalmente come unità indipendenti che eseguono e controllano un particolare carico di lavoro, +ci sono casi in cui i container devono interagire ed essere controllati in modo strettamente accoppiato. + +Se ciascuno di questi container strettamente correlati fosse gestito individualmente, si verrebbero a creare attività di gestione ridondanti. +Ad esempio, l'operatore dovrebbe ripetutamente verificare il posizionamento dei container correlati per assicurarsi che rimangano insieme. +Sebbene i cicli di vita di questi container correlati debbano essere sincronizzati, possono essere gestiti solo individualmente. + +## In che modo aiuta + +I pod raggruppano i container strettamente legati in un'unica unità, semplificando notevolmente le operazioni sui container. +Ad esempio, i container ausiliari vengono spesso utilizzati insieme al container principale per aggiungere funzionalità aggiuntive o per impostare configurazioni globali. +Esempi possono includere container che iniettano e applicano impostazioni di base al container principale, +sidecar (container) che gestiscono il routing del traffico di rete per il container principale (vedi [service mesh](/it/service-mesh/)), +o container che raccolgono i log di altri determinati container. + + +L'allocazione di memoria e CPU puÃ˛ essere definita a livello di pod, consentendo ai container all'interno di condividere le risorse in modo flessibile, o per container. diff --git a/content/it/policy-as-code.md b/content/it/policy-as-code.md new file mode 100644 index 0000000000..ea79ef48fc --- /dev/null +++ b/content/it/policy-as-code.md @@ -0,0 +1,28 @@ +--- +title: Policy as Code (PaC) +status: Completed +category: Concetto +tags: ["metodologia", "", ""] +draft: +--- + +## Cos'è + +Policy as code è la pratica che consente di memorizzare la definizione delle policy in uno o piÚ file in formato leggibile e processabile da macchine. +Questa metodologia sostituisce il modello tradizionale in cui le policy sono documentate in formato leggibile da umani in documenti esterni al sistema. + +## Quali problematiche affronta + +La costruzione di applicazioni e infrastrutture è spesso vincolata a molte policy che un'organizzazione definisce, +ad esempio policy di sicurezza che vietano di memorizzare segreti nel codice sorgente, di eseguire un container con autorizzazioni di superutente +o di memorizzare alcuni dati al di fuori di una specifica regione geografica. +Per gli sviluppatori e i revisori è molto laborioso e soggetto a errori verificare manualmente le applicazioni e le infrastrutture rispetto alle policy documentate. +I processi manuali non possono soddisfare i requisiti di reattività e scalabilità delle applicazioni native del cloud. + +## In che modo aiuta + +Utilizzare Policy as Code consente la ripetibilità e riduce gli errori, a differenza di quanto avviene manualmente. +Un altro vantaggio è che il codice puÃ˛ essere gestito da un sistema di controllo di versione come Git. +Git crea una cronologia dei log delle modifiche, che è particolarmente utile quando qualcosa non funziona come previsto. +Consente all'utente di determinare chi ha apportato la modifica e di ripristinare una versione precedente. + diff --git a/content/it/role-based-access-control.md b/content/it/role-based-access-control.md new file mode 100644 index 0000000000..fe86ef57c9 --- /dev/null +++ b/content/it/role-based-access-control.md @@ -0,0 +1,25 @@ +--- +title: Role-Based Access Control (RBAC) +status: Completed +category: Concetto +--- + +## Cos'è + +Il Role-based access control (RBAC - Controllo degli accessi basato sul ruolo) è un metodo per regolare l'accesso a sistemi e risorse basato sui ruoli dei singoli utenti all'interno di un'organizzazione. +Ogni funzione aziendale ha un ruolo specifico e determinati permessi. +Per esempio, un membro del team di marketing potrebbe avere i permessi per vedere le trattative in corso (permesso di *lettura*), ma non sarà in grado di modificarle (permesso di *scrittura*). +I team di vendita e di marketing hanno permessi diversi in base ai loro ruoli, da cui RBAC, e lo stesso vale per i ruoli all'interno dei team di sviluppo. + +## Quali problematiche affronta + +Gestire individualmente i permessi di accesso di molti utenti tra le risorse e i dati di diversi sistemi puÃ˛ essere complicato. +Ogni utente, infatti, puÃ˛ aver bisogno di accedere a un diverso insieme di risorse. +Poniamo il caso di un'organizzazione con 500 sviluppatori (utenti) e 300 risorse con diversi livelli di permessi (lettura, scrittura e nessun accesso). L'amministratore deve assicurarsi che ciascun utente abbia i corretti permessi per tutte le 300 risorse. +RBAC semplifica il processo fornendo controlli di accesso predefiniti basati su raggruppamenti dei ruoli. + +## In che modo aiuta + +RBAC fornisce un controllo granulare sui permessi all'interno dei sistemi software. +A seconda dei loro ruoli, i membri del team possono modificare una sezione, visualizzarla soltanto, o non avervi alcun accesso. +Questa assegnazione granulare dei permessi permette ai membri del team con diversi ruoli di lavorare allo stesso sistema minimizzando i rischi. diff --git a/content/it/runtime.md b/content/it/runtime.md new file mode 100644 index 0000000000..75201eb0e0 --- /dev/null +++ b/content/it/runtime.md @@ -0,0 +1,35 @@ +--- +title: Runtime +status: Completed +category: concetto +tags: ["applicazione", "", ""] +--- + +## Cos'è + +Un runtime, in generale, esegue un software. +È un'[astrazione](/it/abstraction/) del sistema operativo sottostante che traduce i comandi del programma in azioni corrispondenti perchÊ siano utili al sistema operativo stesso. + +Nel contesto [cloud native](/it/cloud-native-apps/), il termine runtime si riferisce generalmente al runtime dei container. +Un container runtime è un implementazione che segue le specifiche [Open Container Initiative](https://opencontainers.org/) per garantire una gestione coerente dei container nelle differenti tecnologie di orchestrazione degli stessi. + +## Quali problematiche affronta +Senza l'astrazione di un runtime del container, l'applicazione dovrebbe occuparsi di tutte le meccaniche di ciascun sistema operativo, aumentando la complessità dell'esecuzione dell'applicazione. + +## In che modo aiuta +I container runtime sono un componente necessario degli orchestratori di container come [Kubernetes](/it/kubernetes). +Gestiscono il ciclo di vita del container, che fa principalmente tre cose: + +- definisce come vengono specificate le immagini del container e come il runtime puÃ˛ recuperarle; +- gestisce come queste immagini vengono decompresse, stratificate, montate ed eseguite; +- gestisce le risorse hardware occupandosi di tutte queste azioni a livello di sistema operativo, come allocazione e isolamento delle risorse. + +Nel tempo, diverse implementazioni di container runtime hanno continuato ad evolversi, portando alla Specifica OCI, che è diventata lo standard per i runtime dei container. +L'introduzione di questo standard consente agli utenti finali di combinare qualsiasi runtime conforme a OCI con qualsiasi orchestratore di container conforme a OCI (come Kubernetes). + +## Termini correlati + +- [Cloud Native](/it/cloud-native-apps/) +- [Containerization](/it/containerization/) +- [Container Orchestration](/it/container-orchestration/) +- [Microservices Architecture](/it/microservices-architecture/) \ No newline at end of file diff --git a/content/it/security-chaos-engineering.md b/content/it/security-chaos-engineering.md new file mode 100644 index 0000000000..387db52913 --- /dev/null +++ b/content/it/security-chaos-engineering.md @@ -0,0 +1,35 @@ +--- +title: Security Chaos Engineering +status: Completed +category: Concetto +tags: ["sicurezza", "metodologia", ""] +--- + +## Cos'è + +Security Chaos Engineering o SCE è una disciplina basata sul [Chaos Engineering](/it/chaos-engineering/). +SCE esegue proattivamente test di sicurezza su un sistema distribuito per assicurarsi che questo sia in grado di resistere a condizioni di instabilità e malevole. +I security chaos engineers utilizzano cicli di metodi scientifici per raggiungere questo obiettivo, +tra cui lo stato stazionario (steady state), ipotesi, verifica continua, lessons learned e implementazione delle mitigazioni. + + +## Quali problematiche affronta + +La priorità principale per i [site reliability engineers](/it/site-reliability-engineering/) (SRE) e gli ingegneri della sicurezza informatica è +ripristinare il servizio il piÚ velocemente possibile con l'obiettivo di annullare il disservizio e ridurre al minimo l'impatto sul business. +Gli SRE e gli ingegneri della sicurezza informatica sono coinvolti in caso di incidente, sia prima, sia dopo il guasto. +La maggior parte delle problematiche relative alla sicurezza sono difficili da individuare e correggere rapidamente, con ripercussioni sulle funzionalità dell'applicazione o del sistema. E sono generalmente ancora piÚ difficili da identificare durante la fase di sviluppo. + + +## In che modo aiuta + +Security Chaos Engineering si basa su [osservabilità](/it/observability/) e pratiche di resilienza informatica. +Ha lo scopo di scoprire le "incognite sconosciute" e creare fiducia nel sistema, +aumentare la resilienza informatica e migliorare l'osservabilità. + +I team di ingegneri miglioreranno progressivamente la comprensione delle questioni legate alla sicurezza +all'interno di infrastrutture complesse, piattaforme e sistemi distribuiti. +SCE migliora la resilienza informatica dell'intero prodotto, identifica problemi di sicurezza nascosti, +espone i classici punti ciechi e prepara i team per i casi limite piÚ critici. +Questo approccio aiuta gli ingegneri SRE, [DevOps](/it/devops/) e [DevSecOps](/it/devsecops/) a +creare fiducia nel sistema, aumentare la resilienza informatica e migliorare l'osservabilità. diff --git a/content/it/serverless.md b/content/it/serverless.md new file mode 100644 index 0000000000..53f2323e5f --- /dev/null +++ b/content/it/serverless.md @@ -0,0 +1,35 @@ +--- +Title: Serverless +Status: Completed +Category: Tecnologia +tags: ["architettura", "", ""] +--- + +## Cos'è + +Il serverless è un modello di sviluppo cloud native che permette +di costruire ed eseguire applicazioni senza la necessità di gestire i server. +I server sono comunque presenti nel serverless, ma sono [astratti](/it/abstraction/) dallo sviluppo dell'applicazione. +Un cloud provider gestisce regolarmente il provisioning, la manutenzione e la [scalabilità](/it/scalability/) dell'infrastruttura server. +I team di sviluppo possono semplicemente impacchettare codice in[container](/it/container/) per la distribuzione. +Una volta distribuite, le applicazioni serverless rispondono alla domanda e [scalano automaticamente](/it/vertical-scaling/) in base alle necessità. +Le offerte serverless proposte dai fornitori di cloud pubblico sono generalmente misurate on-demand attraverso un modello di esecuzione basato sugli eventi. +Di conseguenza, quando una funzione serverless non è in esecuzione, non ha costi. + +## Quali problematiche affronta + +In un modello standard di [cloud computing](/it/cloud-computing/) di tipo [Infrastructure-as-a-Service (IaaS)](/it/infrastructure-as-a-service/), +gli utenti acquistano in anticipo unità di capacità, ovvero pagano un fornitore di cloud pubblico per avere componenti server sempre attivi che mantengano in esecuzione le applicazioni. +È compito dell'utente scalare verso l'alto la capacity del server nei momenti di traffico elevato +e di scalarla verso il basso quando non è piÚ necessaria. +L'infrastruttura cloud necessaria per eseguire l'applicazione rimane attiva anche quando l'applicazione non viene utilizzata. + +## In che modo aiuta + +Con un'architettura serverless, invece, le applicazioni vegnono avviate soltanto quando serve. +Quando un evento attiva l'esecuzione del codice dell'applicazione, il fornitore di cloud pubblico alloca delle risorse per quel codice in modo dinamico. +L'utente smette di pagare nel momento in cui il codice finisce di essere eseguito. +Oltre ai benefici legati al costo e all'efficienza, +il serverless libera gli sviluppatori dalle attività ripetitive e secondarie legate alla scalabilità dell'applicazione e al provisioning del server. +Grazie al serverless, attività ripetitive come la gestione del sistema operativo e dei file di sistema, le patch di sicurezza, +il bilanciamento, la gestione della capacità, la scalabilità, il logging e il monitoraggio vengono tutte demandate al fornitore di servizi cloud. diff --git a/content/it/service-discovery.md b/content/it/service-discovery.md new file mode 100644 index 0000000000..f1ad1eb802 --- /dev/null +++ b/content/it/service-discovery.md @@ -0,0 +1,23 @@ +--- +title: Service Discovery +status: Completed +category: concetto +tags: ["networking", "", ""] +--- + +## Che cos'è + +Il service discovery è il processo di individuazione delle singole istanze che compongono un servizio. +Uno strumento di service discovery tiene traccia dei vari nodi o endpoint che compongono un servizio. + +## Quali problematiche affronta + +Le architetture cloud native sono dinamiche e fluide, ossia sono in costante cambiamento. +Un'applicazione [containerizzata](/it/containerization/) probabilmente partirà e si fermerà piÚ volte durante il suo ciclo di vita. +Ogni volta che ciÃ˛ accadrà, l'applicazione avrà un nuovo indirizzo: qualunque altra applicazione che vorrà individuarla avrà bisogno di un servizio che possa fornire le informazioni circa il suo nuovo indirizzo. + +## In che modo aiuta + +Il service discovery tiene traccia delle applicazioni all'interno del network in modo che ciascuna possa individuare le altre quando ne ha necessità. +Fornisce un unico punto comune nel quale trovare e potenzialmente identificare i singoli servizi. +I motori di service discovery sono strumenti simili a database, che archiviano informazioni su quali servizi esistono e su come individuarli. diff --git a/content/it/service-mesh.md b/content/it/service-mesh.md index 744b160c81..09e951fcda 100644 --- a/content/it/service-mesh.md +++ b/content/it/service-mesh.md @@ -1,5 +1,5 @@ --- -title: Applicazioni distribuite +title: Service Mesh status: Completed category: tecnologia tags: ["networking", "", ""] diff --git a/content/it/service-proxy.md b/content/it/service-proxy.md new file mode 100644 index 0000000000..be60a56d94 --- /dev/null +++ b/content/it/service-proxy.md @@ -0,0 +1,29 @@ +--- +title: Service Proxy +status: Completed +category: tecnologia +tags: ["networking", "", ""] +--- + +## Cos'è + +Un service proxy intercetta il traffico verso o proveniente da un determinato [servizio](/it/service/), +vi applica delle logiche, e in seguito inoltra quel traffico a un altro servizio. +Essenzialmente si comporta come un intermediario che raccoglie informazioni riguardo il traffico di rete e/o applica delle regole su di esso. + +## Quali problematiche affronta + +Per tenere traccia delle comunicazioni tra servizi, ovvero di ciÃ˛ che viene definito traffico di rete, e potenzialmente trasformarlo o reindirizzarlo, è evidentemente necessario raccogliere dati. +Tradizionalmente, il codice che abilitava la raccolta di dati e la gestione del traffico di rete era incorporato all'interno di ogni applicazione. + +## In che modo aiuta + +Un service proxy permette di "esternalizzare" questa funzionalità. +Quel codice non deve piÚ necessariamente essere all'interno delle applicazioni, +ma diviene parte integrante della piattaforma, cioè dove l'applicazione è in esecuzione. + +Fungendo da porta d'accesso ai servizi, i proxy forniscono informazioni riguardo a che tipo di comunicazione sta avvenendo. +Basandosi su queste informazioni, determinano dove inviare una particolare richiesta, o anche rigettarla del tutto. + +I proxy raccolgono dati fondamentali, gestiscono il routing (distribuendo uniformemente il traffico tra i servizi o reindirizzandolo se qualche servizio si interrompe), +criptano le connessioni e salvano su cache il contenuto (riducendo il consumo di risorse). diff --git a/content/it/software-as-a-service.md b/content/it/software-as-a-service.md index 07e14bf353..c4a95d51e3 100644 --- a/content/it/software-as-a-service.md +++ b/content/it/software-as-a-service.md @@ -1,6 +1,6 @@ --- Title: Software as a Service (SaaS) -Status: Completed +Status: Deprecated Category: Tecnologia tags: ["fondamentali", "piattaforma", ""] --- diff --git a/content/it/stateful-apps.md b/content/it/stateful-apps.md index fe3883adb4..e25fd02827 100644 --- a/content/it/stateful-apps.md +++ b/content/it/stateful-apps.md @@ -7,7 +7,7 @@ tags: ["fondamentali", "basi"] ## Cos'è -Quando parliamo di applicazioni _stateful_ (letteralmente "a pieno stato") e [stateless](/it/stateless-apps/) (letteralmente "senza stato"), +Quando parliamo di applicazioni _stateful_ (letteralmente "a pieno stato") e stateless (letteralmente "senza stato"), il concetto di stato si riferisce a tutti i dati da salvare affinchÊ l'applicazione funzioni come previsto. Qualsiasi tipo di esperienza di acquisto online che ti ricorda a che punto sta il tuo carrello è, ad esempio, un'applicazione _stateful_. diff --git a/content/it/version-control.md b/content/it/version-control.md index 3e3fb4d16b..0a2203c894 100644 --- a/content/it/version-control.md +++ b/content/it/version-control.md @@ -1,6 +1,6 @@ --- title: Controllo di Versione -status: Completed +status: Deprecated category: Tecnologia tags: ["metodologia", "", ""] --- diff --git a/content/it/vertical-scaling.md b/content/it/vertical-scaling.md new file mode 100644 index 0000000000..b43965e060 --- /dev/null +++ b/content/it/vertical-scaling.md @@ -0,0 +1,36 @@ +--- +title: Scalabilità verticale +status: Completed +category: Concetto +tags: ["infrastruttura", "", ""] +--- + +## Cos'è + +La scalabilità verticale, è una tecnica in cui la capacita del sistema +viene aumentata aggiungendo CPU e memoria sui singoli [nodes](/it/nodes/) quando il carico di lavoro aumenta. +Ad esempio, nel caso in cui ci sia un computer con 4GB RAM e si voglia incrementare la sua capacità a 16GB RAM, +Scalabilità verticale significa portare a 16GB RAM la memoria del sistema. +(Si prega di fare riferimento a [horizontal scaling](/it/horizontal-scaling/) per una differente modalità di scalabilità.) + +## Quali problematiche affronta + +Quando la domanda di risorse per un'applicazione cresce oltre la capacità attuale di quell'istanza dell'applicazione, +bisogna trovare un modo per rendere scalabile il sistema, cioè aggiungere capacità. +Si possono aggiungere piÚ risorse di calcolo ai nodi esistenti (scalabilità verticale) +o piÚ nodi al sistema ([horizontal scaling](/it/horizontal-scaling/)). +La scalabilità contribuisce alla competitività, all'efficienza, alla reputazione ed alla qualità. + + +## In che modo aiuta + +La scalabilità verticale consente di ridimensionare il server senza modificare il codice dell'applicazione. +Questa tecnica contrasta con la scalabilità orizzontale, in cui l'applicazione deve essere replicabile per scalare, potenzialmente richiedendo aggiornamenti del codice. +La scalabilità verticale aumenta la capacità di un'applicazione esistente aggiungendo risorse di calcolo, +consentendo all'app di elaborare piÚ richieste ed eseguire piÚ attività contemporaneamente. + + +## Termini Collegati + +* [Horizontal Scaling](/it/horizontal-scaling/) +* [Auto Scaling](/it/auto-scaling/) diff --git a/content/it/virtualization.md b/content/it/virtualization.md new file mode 100644 index 0000000000..d14508943d --- /dev/null +++ b/content/it/virtualization.md @@ -0,0 +1,31 @@ +--- +title: Virtualizzazione +status: completed +category: tecnologia +tags: ["fondamentali", "infrastruttura", "metodologia"] +--- + +## Cos'è + +La virtualizzazione, nell'ambito del cloud native computing (calcolo nativo su cloud), +si riferisce alla pratica per la quale a un computer fisico, talvolta denominato server, +viene consentito di eseguire piÚ sistemi operativi isolati. +Tali sistemi operativi isolati e le risorse di calcolo ad essi dedicate (CPU, memoria e rete) vengono +chiamati macchine virtuali o VM. +Quando si parla di [macchine virtuali](/it/virtual-machine/), si fa riferimento a un computer definito da un software. +Qualcosa che sembra e agisce come un vero computer ma che condivide l'hardware con altre macchine virtuali. +Il [cloud computing](/it/cloud-computing/) è alimentato principalmente dalle tecnologie di virtualizzazione. +Per esempio, è possibile noleggiare un "computer" da un provider, ma quel computer è in realtà una VM. + +## Quali problematiche affronta + +La virtualizzazione affronta molte problematiche, tra cui il miglioramento dell'utilizzo dell'hardware fisico, +in quanto permette a piÚ applicazioni di essere eseguite sulla stessa macchina fisica +mantenendole isolate l'una dall'altra per sicurezza. + +## In che modo aiuta + +Le applicazioni eseguite su macchine virtuali operano senza alcuna consapevolezza del fatto che condividono una stessa risorsa fisica. +La virtualizzazione permette anche agli utenti del [datacenter](/it/datacenter/) di avviare un nuovo "computer" (cioè una VM) in pochi minuti, +senza preoccuparsi dei vincoli fisici di dover aggiungere del nuovo hardware al datacenter. +Le VM consentono inoltre agli utenti di ridurre il tempo necessario per mettere a disposizione un nuovo computer. diff --git a/content/it/zero-trust-architecture.md b/content/it/zero-trust-architecture.md new file mode 100644 index 0000000000..b0c8f8d135 --- /dev/null +++ b/content/it/zero-trust-architecture.md @@ -0,0 +1,36 @@ +--- +title: Architettura Zero Trust +status: Completed +category: Concetto +tags: ["sicurezza", "", ""] +--- + +## Cos'è + +L'architettura Zero trust prevede di progettare e implementare sistemi IT con un approccio +nel quale la fiducia è completamente rimossa. +Il principio fondamentale è "non fidarsi mai, verificare sempre": prima di comunicare con altri componenti di un sistema, +i dispositivi o i sistemi stessi attuano delle verifiche. +Oggi accade spesso che internamente ad un network aziendale i sistemi e i dispositivi possano comunicare liberamente tra loro +poichÊ si trovano all'interno del confine considerato affidabile del perimetro del network aziendale. +Un'architettura Zero trust applica l'approccio opposto, nel quale anche all'interno del perimetro del network +i componenti del sistema debbano superare delle verifiche, prima che possa avvenire un qualsiasi tipo di comunicazione. + +## Quali problematiche affronta + +Con l'approccio tradizionale che si fonda sulla fiducia, secondo la quale si ritengono affidabili i sistemi e i dispositivi all'interno del perimetro del network aziendale, +si basa sull'assunto che siccome c'è fiducia, non c'è da preoccuparsi. +Un'architettura Zero trust, invece, considera la fiducia una vulnerabilità. +Nel caso in cui un agente malevolo abbia ottenuto l'accesso a un dispositivo considerato affidabile, +a seconda del livello di fiducia e accesso che abbia quel determinato dispositivo, +il sistema è vulnerabile ad un attacco +in quanto l'agente malevolo è all'interno del perimetro del network "affidabile", ed è in grado di spostarsi lateralmente in tutto il sistema. +In un'architettura Zero trust la fiducia è rimossa, riducendo cosÃŦ la superficie di attacco +in quanto un eventuale intruso è costretto ad essere verificato prima di poter procedere ulteriormente all'interno del sistema. + +## In che modo aiuta + +Il principale beneficio dell'adozione di un'architettura Zero trust consiste in una maggiore sicurezza +grazie alla riduzione della superficie d'attacco. +Rimuovere la fiducia da un sistema aziendale aumenta il numero e l'efficacia dei controlli di sicurezza +che un intruso deve superare per ottenere l'accesso ad altre aree del sistema. diff --git a/content/ko/containerization.md b/content/ko/containerization.md index 83aed7f86e..0cc4740dcd 100644 --- a/content/ko/containerization.md +++ b/content/ko/containerization.md @@ -8,7 +8,7 @@ tags: ["ė• í”ŒëĻŦėŧ€ė´ė…˜", "", ""] ## 개념 ėģ¨í…Œė´ë„ˆí™”(containerization)는 ė• í”ŒëĻŦėŧ€ė´ė…˜ęŗŧ ꡸ ė˜ėĄ´ ėš”ė†Œë“¤ė„ -[ėģ¨í…Œė´ë„ˆ ė´ë¯¸ė§€](/container-image/) 형태로 íŦėžĨ하는 것(bundling)ė„ ė˜ë¯¸í•œë‹¤. +ėģ¨í…Œė´ë„ˆ ė´ë¯¸ė§€ 형태로 íŦėžĨ하는 것(bundling)ė„ ė˜ë¯¸í•œë‹¤. ėģ¨í…Œė´ë„ˆ 빌드 프로ė„¸ėŠ¤ëŠ” [OCI(Open Container Initiative)](https://opencontainers.org) 표ė¤€ė„ ė¤€ėˆ˜í•´ė•ŧ 한다. ėģ¨í…Œė´ë„ˆí™”ė˜ 결ęŗŧëŦŧė´ ė´ 표ė¤€ė„ ė¤€ėˆ˜í•˜ëŠ” ėģ¨í…Œė´ë„ˆ ė´ë¯¸ė§€ė´ę¸°ë§Œ 한다면, ė–´ë– í•œ ėģ¨í…Œė´ë„ˆí™” 도ęĩŦëŧ도 ė‚ŦėšŠí•  ėˆ˜ ėžˆë‹¤. diff --git a/content/pt-br/abstraction.md b/content/pt-br/abstraction.md index fc49197b44..f3eb971b74 100644 --- a/content/pt-br/abstraction.md +++ b/content/pt-br/abstraction.md @@ -2,7 +2,7 @@ title: AbstraçÃŖo status: Completed category: propriedade -tags: ["arquitetura", "", ""] +tags: ["fundamento", "", ""] --- No contexto computacional, uma abstraçÃŖo Ê uma representaçÃŖo que oculta especificidades para um consumidor de serviços, tornando sua utilizaçÃŖo mais genÊrica e de fÃĄcil entendimento. Um bom exemplo Ê o sistema operacional (S.O) do seu laptop. Ele abstrai todos os detalhes de como o computador funciona. VocÃĒ nÃŖo precisa ter nenhum conhecimento sobre CPU, memÃŗria e como os programas sÃŖo executados, vocÃĒ apenas opera o S.O e o S.O lida com os detalhes. Todos esses detalhes sÃŖo ocultos por trÃĄs das cortinas do S.O - ou seja, uma abstraçÃŖo. diff --git a/content/pt-br/application-programming-interface.md b/content/pt-br/application-programming-interface.md index 1be6b66999..c931469757 100644 --- a/content/pt-br/application-programming-interface.md +++ b/content/pt-br/application-programming-interface.md @@ -2,7 +2,7 @@ title: Interface de ProgramaçÃŖo de AplicaçÃĩes status: Completed category: tecnologia -tags: ["arquitetura", "", ""] +tags: ["arquitetura", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/auto-scaling.md b/content/pt-br/auto-scaling.md index 0e0b8f24e2..3076503ce5 100644 --- a/content/pt-br/auto-scaling.md +++ b/content/pt-br/auto-scaling.md @@ -2,7 +2,7 @@ title: Auto scaling status: Completed category: propriedade -tags: ["aplicaçÃŖo", "infraestrutura", "arquitetura"] +tags: ["infraestrutura", "", ""] --- O Auto scaling Ê a capacidade de um sistema de escalar automaticamente, normalmente, em termos de recursos computacionais. Com um sistema de auto scaling, os recursos sÃŖo adicionados automaticamente quando necessÃĄrio e podem ser dimensionados para atender às variaçÃĩes de demanda dos usuÃĄrios. O processo de auto scaling varia e Ê configurÃĄvel para escalar com base em diferentes mÊtricas, como memÃŗria ou tempo de processamento. Os serviços gerenciados na nuvem geralmente estÃŖo associados à funcionalidade de auto scaling, pois hÃĄ mais opçÃĩes e implementaçÃĩes disponíveis do que a maioria das implantaçÃĩes no modelo on premise. diff --git a/content/pt-br/blue-green-deployment.md b/content/pt-br/blue-green-deployment.md index 8502e7f148..92ab741946 100644 --- a/content/pt-br/blue-green-deployment.md +++ b/content/pt-br/blue-green-deployment.md @@ -2,7 +2,7 @@ title: Blue Green Deployment status: Completed category: conceito -tags: ["aplicaçÃŖo", "", ""] +tags: ["metodologia", "aplicaçÃŖo", ""] --- ## O que Ê diff --git a/content/pt-br/canary-deployment.md b/content/pt-br/canary-deployment.md index facce5c49f..b8719cc0b9 100644 --- a/content/pt-br/canary-deployment.md +++ b/content/pt-br/canary-deployment.md @@ -2,7 +2,7 @@ title: ImplantaçÃŖo CanÃĄrio status: Completed category: conceito -tags: ["aplicaçÃŖo", "", ""] +tags: ["metodologia", "aplicaçÃŖo", ""] --- ## O que Ê diff --git a/content/pt-br/client-server-architecture.md b/content/pt-br/client-server-architecture.md index 761982e889..fb210b4c20 100644 --- a/content/pt-br/client-server-architecture.md +++ b/content/pt-br/client-server-architecture.md @@ -2,7 +2,7 @@ title: Arquitetura Cliente Servidor status: Completed category: conceito -tags: ["arquitetura", "", ""] +tags: ["arquitetura", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/cloud-computing.md b/content/pt-br/cloud-computing.md index 873b40c021..e35ef8d78a 100644 --- a/content/pt-br/cloud-computing.md +++ b/content/pt-br/cloud-computing.md @@ -2,7 +2,7 @@ title: ComputaçÃŖo em Nuvem status: Completed category: conceito -tags: ["infraestrutura", "", ""] +tags: ["infraestrutura", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/cloud-native-apps.md b/content/pt-br/cloud-native-apps.md index 983ac62205..b736317ab8 100644 --- a/content/pt-br/cloud-native-apps.md +++ b/content/pt-br/cloud-native-apps.md @@ -2,7 +2,7 @@ title: AplicaçÃĩes Nativas em Nuvem status: Completed category: conceito -tags: ["aplicaçÃŖo", "", ""] +tags: ["aplicaçÃŖo", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/cloud-native-tech.md b/content/pt-br/cloud-native-tech.md index c496b5ce99..064edfa49d 100644 --- a/content/pt-br/cloud-native-tech.md +++ b/content/pt-br/cloud-native-tech.md @@ -2,7 +2,7 @@ title: Tecnologia Nativa da Nuvem status: Completed category: conceito -tags: ["fundamentos", "", ""] +tags: ["fundamento", "", ""] --- ## O que Ê diff --git a/content/pt-br/cluster.md b/content/pt-br/cluster.md index ade32615e6..37b67c8a40 100644 --- a/content/pt-br/cluster.md +++ b/content/pt-br/cluster.md @@ -2,7 +2,7 @@ title: Cluster status: Completed category: conceito -tags: ["infraestrutura", "arquitetura", ""] +tags: ["infraestrutura", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/container.md b/content/pt-br/container.md index 50946b5049..0022db3387 100644 --- a/content/pt-br/container.md +++ b/content/pt-br/container.md @@ -2,7 +2,7 @@ title: ContÃĒineres status: Completed category: tecnologia -tags: ["aplicaçÃŖo", "", ""] +tags: ["aplicaçÃŖo", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/containerization.md b/content/pt-br/containerization.md index c0374d8123..3f67bf45bf 100644 --- a/content/pt-br/containerization.md +++ b/content/pt-br/containerization.md @@ -7,7 +7,7 @@ tags: ["aplicaçÃŖo", "", ""] ## O que Ê -A conteinerizaçÃŖo Ê o processo de agrupar uma aplicaçÃŖo e suas dependÃĒncias em uma [imagem de contÃĒiner](/pt-br/container-image/). O processo de criaçÃŖo do contÃĒiner requer adesÃŖo ao padrÃŖo [Open Container Initiative](https://opencontainers.org) (OCI). Desde que a saída seja uma imagem de contÃĒiner que atenda a esse padrÃŖo, a ferramenta de conteinerizaçÃŖo usada nÃŖo importa. +A conteinerizaçÃŖo Ê o processo de agrupar uma aplicaçÃŖo e suas dependÃĒncias em uma imagem de contÃĒiner. O processo de criaçÃŖo do contÃĒiner requer adesÃŖo ao padrÃŖo [Open Container Initiative](https://opencontainers.org) (OCI). Desde que a saída seja uma imagem de contÃĒiner que atenda a esse padrÃŖo, a ferramenta de conteinerizaçÃŖo usada nÃŖo importa. ## Problema relacionado diff --git a/content/pt-br/continuous-delivery.md b/content/pt-br/continuous-delivery.md index f3e27d46af..a0df9395f2 100644 --- a/content/pt-br/continuous-delivery.md +++ b/content/pt-br/continuous-delivery.md @@ -2,7 +2,7 @@ title: Entrega Contínua (CD) status: Completed category: conceito -tags: ["aplicaçÃŖo", "metodologia", ""] +tags: [metodologia", "aplicaçÃŖo", ""] --- ## O que Ê diff --git a/content/pt-br/continuous-deployment.md b/content/pt-br/continuous-deployment.md new file mode 100644 index 0000000000..cec0ebfb24 --- /dev/null +++ b/content/pt-br/continuous-deployment.md @@ -0,0 +1,23 @@ +--- +title: Implantaçāo Contínua +status: Completed +category: conceito +tags: ["aplicaçÃŖo", "metodologia", ""] +--- + +## O que Ê + +ImplantaçÃŖo contínua (continuous deployment - CD), vai um passo alÊm da entrega contínua ao implantar o software finalizado diretamente na produçÃŖo. A implantaçÃŖo contínua anda de mÃŖos dadas com a [entrega contínua](/pt-br/continuous-delivery/) e Ê frequentemente referida como _CI/CD_. O processo de CI testa se as alteraçÃĩes feitas em um determinado aplicativo sÃŖo vÃĄlidas, e o processo de CD implanta automaticamente as mudanças de cÃŗdigo atravÊs dos ambientes de uma organizaçÃŖo, desde teste atÊ a produçÃŖo. + +## Problema relacionado + +Lançar novas versÃĩes de software pode ser um processo trabalhoso e propenso a erros. AlÊm disso, muitas vezes Ê algo que as organizaçÃĩes sÃŗ desejam fazer com pouca frequÃĒncia para evitar incidentes de produçÃŖo e reduzir a quantidade de tempo em que os engenheiros precisam estar disponíveis fora do horÃĄrio comercial regular. Modelos tradicionais de implantaçÃŖo de software deixam as organizaçÃĩes em um ciclo vicioso em que o processo de lançamento de software nÃŖo atende às necessidades organizacionais de estabilidade e velocidade de recursos. + +## Como isso ajuda + +Automatizando o ciclo de lançamento e forçando as organizaçÃĩes a lançar na produçÃŖo com mais frequÃĒncia, a CD faz pelo time de operaçÃĩes o que a CI fez pelos times de desenvolvimento. Especificamente, ela obriga os times de operaçÃĩes a automatizar as partes dolorosas e propensas a erros das implantaçÃĩes de produçÃŖo, reduzindo o risco geral. Isso tambÊm torna as organizaçÃĩes mais aptas a aceitar e se adaptar às mudanças de produçÃŖo, o que resulta em maior estabilidade. + +## Termos relacionados + +* [IntegraçÃŖo Contínua](/pt-br/continuous-integration/) +* [Entrega Contínua (CD)](/pt-br/continuous-delivery/) \ No newline at end of file diff --git a/content/pt-br/data-center.md b/content/pt-br/data-center.md index bfc2d05aca..c25916748a 100644 --- a/content/pt-br/data-center.md +++ b/content/pt-br/data-center.md @@ -2,7 +2,7 @@ title: Data Center status: Feedback Appreciated category: tecnologia -tags: ["", "", ""] +tags: ["infraestrutura", "", ""] --- ## O que Ê diff --git a/content/pt-br/debugging.md b/content/pt-br/debugging.md index 4e9eb66139..94154fb178 100644 --- a/content/pt-br/debugging.md +++ b/content/pt-br/debugging.md @@ -2,7 +2,7 @@ title: Debugging status: Completed category: conceito -tags: ["aplicaçÃŖo", "", ""] +tags: ["aplicaçÃŖo", "metodologia", ""] --- ## O que Ê diff --git a/content/pt-br/devsecops.md b/content/pt-br/devsecops.md index e8d19aa9f5..d462367c11 100644 --- a/content/pt-br/devsecops.md +++ b/content/pt-br/devsecops.md @@ -2,7 +2,7 @@ title: DevSecOps status: Completed category: conceito -tags: ["metodologia", "", ""] +tags: ["metodologia", "segurança", ""] --- ## O que Ê diff --git a/content/pt-br/distributed-systems.md b/content/pt-br/distributed-systems.md new file mode 100644 index 0000000000..38fb84b1a3 --- /dev/null +++ b/content/pt-br/distributed-systems.md @@ -0,0 +1,22 @@ +--- +title: Sistemas Distribuídos +status: Completed +category: conceito +tags: ["arquitetura", "", ""] +--- + +## O que Ê + +Um sistema distribuído Ê uma coleçÃŖo de elementos de computaçÃŖo autônomos conectados por uma rede que aparece para os usuÃĄrios como um Ãēnico sistema coerente. Geralmente referidos como [nÃŗs](/pt-br/nodes/), esses componentes podem ser dispositivos de hardware (por exemplo, computadores, telefones mÃŗveis) ou processos de software. Os nÃŗs sÃŖo programados para alcançar um objetivo comum e, para colaborar, eles trocam mensagens pela rede. + +## Problema relacionado + +Hoje, inÃēmeras aplicaçÃĩes modernas sÃŖo tÃŖo grandes que precisariam de supercomputadores para operar. Pense no Gmail ou Netflix. Nenhum computador Ãēnico Ê suficientemente poderoso para hospedar toda a aplicaçÃŖo. Ao conectar vÃĄrios computadores, o poder computacional se torna praticamente ilimitado. Sem a computaçÃŖo distribuída, muitas das aplicaçÃĩes das quais dependemos hoje nÃŖo seriam possíveis. + +Tradicionalmente, os sistemas seriam [escalados](/pt-br/scalability) verticalmente. Isso significa adicionar mais CPU ou memÃŗria a uma mÃĄquina individual. A [escalabilidade vertical](/pt-br/vertical-scaling/) Ê demorada, requer tempo de inatividade e atinge seu limite rapidamente. + +## Como ajuda + +Sistemas distribuídos permitem a [escalabilidade horizontal](/horizontal-scaling/) (por exemplo, adicionar mais nÃŗs ao sistema sempre que necessÃĄrio). Isso pode ser automatizado, permitindo que um sistema lide com um aumento repentino na carga de trabalho ou no consumo de recursos. + +Um sistema nÃŖo distribuído expÃĩe-se a riscos de falhas, porque se uma mÃĄquina falhar, o sistema inteiro falha. Um sistema distribuído pode ser projetado de tal maneira que, mesmo se algumas mÃĄquinas falharem, o sistema geral ainda pode continuar funcionando para produzir o mesmo resultado. diff --git a/content/pt-br/event-driven-architecture.md b/content/pt-br/event-driven-architecture.md new file mode 100644 index 0000000000..7353efe1da --- /dev/null +++ b/content/pt-br/event-driven-architecture.md @@ -0,0 +1,26 @@ +--- +title: Arquitetura Orientada por Eventos +status: Completed +category: conceito +tags: ["arquitetura", "", ""] +--- + +## O que Ê + +A arquitetura orientada por Eventos Ê uma arquitetura de software que promove a criaçÃŖo, o processamento, e o consumo de eventos. +Um evento Ê qualquer alteraçÃŖo no estado de uma aplicaçÃŖo ou sistema. +Por exemplo, solicitar uma corrida em um aplicativo de transporte representa um evento. +Essa arquitetura cria a estrutura na qual os eventos podem ser adequadamente roteados da sua fonte (o aplicativo requisitante da corrida) para os seus receptores desejados (os aplicativos dos motoristas disponíveis nas proximidades). + +## Problema relacionado + +À medida que mais dados sÃŖo gerados em tempo real, encontrar maneiras confiÃĄveis de garantir que os eventos sejam capturados e roteados para o [serviço](/pt-br/service/) apropriado, que deve processar as solicitaçÃĩes de eventos, se torna cada vez mais desafiador. +Os mÊtodos tradicionais de manipulaçÃŖo de eventos geralmente nÃŖo tÃĒm como garantir que as mensagens sejam roteadas adequadamente, ou mesmo que sejam realmente enviadas ou recebidas. +À medida que os aplicativos começam a escalar, se torna mais desafiador orquestrar eventos. + +## Como isso ajuda + +As arquiteturas orientadas por eventos estabelecem um hub central, um concentrador, para todos os eventos (por exemplo, [Apache Kafka](http://kafka.apache.org/)). +Em seguida, vocÃĒ define os produtores de eventos (origem) e os consumidores (receptor) e o hub de eventos central garante o fluxo de eventos. +Essa arquitetura garante que os serviços permaneçam desacoplados e os eventos sejam roteados adequadamente do produtor ao consumidor. +O produtor receberÃĄ o evento de entrada, geralmente pelo protocolo HTTP, e rotearÃĄ as informaçÃĩes do evento. diff --git a/content/pt-br/event-streaming.md b/content/pt-br/event-streaming.md index 4623564aed..e09b1141ea 100644 --- a/content/pt-br/event-streaming.md +++ b/content/pt-br/event-streaming.md @@ -2,6 +2,7 @@ title: Streaming de Eventos status: Completed category: conceito +tags: ["metodologia", "rede", ""] --- ## O que Ê diff --git a/content/pt-br/firewall.md b/content/pt-br/firewall.md index bb0ebfd5ab..e03dd0f300 100644 --- a/content/pt-br/firewall.md +++ b/content/pt-br/firewall.md @@ -1,8 +1,8 @@ --- title: Firewall -status: Completed +status: Deprecated category: tecnologia -tags: ["segurança", "", ""] +tags: ["descontinuado", "", ""] --- ## O que Ê diff --git a/content/pt-br/function-as-a-service.md b/content/pt-br/function-as-a-service.md new file mode 100644 index 0000000000..bfa3647336 --- /dev/null +++ b/content/pt-br/function-as-a-service.md @@ -0,0 +1,29 @@ +--- +title: FunçÃŖo como um Serviço (FaaS) +status: Completed +category: Tecnologia +tags: ["infraestrutura", "", ""] +--- + +## O que Ê + +FunçÃŖo como um Serviço, (FaaS - Function as a Service ), Ê um tipo de [serviço](/pt-br/service/) de [computaçÃŖo em nuvem](/pt-br/cloud-computing/) [sem servidor](/pt-br/serverless/) que permite a execuçÃŖo de cÃŗdigo em resposta a eventos sem manter a complexa infraestrutura normalmente associado à criaçÃŖo e lançamento de aplicaçÃĩes de [microsserviços](/microservices/). + +Com FaaS, os usuÃĄrios gerenciam apenas funçÃĩes e dados enquanto o provedor de nuvem gerencia a aplicaçÃŖo. +Isso permite que os desenvolvedores obtenham as funçÃĩes necessÃĄrias sem pagar pelos serviços quando o cÃŗdigo nÃŖo estÃĄ em execuçÃŖo. + +## Problema relacionado + +Em um cenÃĄrio tradicional, uma empresa gerencia e mantÊm seu prÃŗprio data center local. A empresa deve investir em servidores, armazenamento, software e outras tecnologias e possivelmente contratar uma equipe de TI ou terceirizados para comprar, gerenciar e atualizar todos os equipamentos e licenças. O data center deve ser construído para atender a demanda de pico, mesmo quando as cargas de trabalho diminuem e esses recursos ficam ociosos. Por outro lado, o departamento de TI pode ter dificuldades para acompanhar se o negÃŗcio se expandir. + +Sob um modelo padrÃŖo de computaçÃŖo em nuvem [Infrastructure-as-a-Service (IaaS)](/infrastructure-as-a-service/), os usuÃĄrios compram antecipadamente unidades de capacidade, o que significa que serÃĄ pago a um provedor de nuvem pÃēblica por componentes de servidor sempre ativos para executar suas aplicaçÃĩes. É, portanto, responsabilidade do usuÃĄrio aumentar a capacidade do servidor durante períodos de alta demanda e reduzir quando essa capacidade nÃŖo for mais necessÃĄria. + +A infraestrutura de nuvem necessÃĄria para executar uma aplicaçÃŖo estÃĄ ativa mesmo quando a aplicaçÃŖo nÃŖo estÃĄ sendo usado. + +## Como isso ajuda + +O FaaS oferece aos desenvolvedores uma [abstraçÃŖo](/pt-br/abstraction/) para executar aplicaçÃĩes Web em resposta a eventos sem gerenciar servidores. Por exemplo, carregar um arquivo pode acionar um cÃŗdigo personalizado que transcreve o arquivo em vÃĄrios formatos. + +A infraestrutura FaaS dimensionarÃĄ automaticamente o cÃŗdigo para uso pesado, e o desenvolvedor nÃŖo precisa gastar tempo ou recursos criando o cÃŗdigo para [escalabilidade](/pt-br/scalability/). + +O faturamento Ê baseado apenas no tempo de computaçÃŖo, o que significa que as empresas nÃŖo precisam pagar quando as funçÃĩes nÃŖo estiverem em uso. diff --git a/content/pt-br/idempotence.md b/content/pt-br/idempotence.md index 9e90f37643..80ab749b31 100644 --- a/content/pt-br/idempotence.md +++ b/content/pt-br/idempotence.md @@ -2,7 +2,7 @@ title: IdempotÃĒncia status: Completed category: propriedade -tags: ["infraestrutura", "arquitetura", ""] +tags: ["propriedade", "", ""] --- Em matemÃĄtica ou na ciÃĒncia da computaçÃŖo, a idempotÃĒncia descreve uma operaçÃŖo que sempre leva o mesmo resultado, nÃŖo importando quantas vezes vocÃĒ execute a operaçÃŖo. diff --git a/content/pt-br/infrastructure-as-a-service.md b/content/pt-br/infrastructure-as-a-service.md new file mode 100644 index 0000000000..46b1739756 --- /dev/null +++ b/content/pt-br/infrastructure-as-a-service.md @@ -0,0 +1,27 @@ +--- +title: Infraestrutura como Serviço (IaaS) +status: Completed +category: tecnologia +tags: ["infraestrutura", "", ""] +--- + +## Como Ê + +Infraestrutura como serviço, ou IaaS, Ê um modelo de serviço de [computaçÃŖo em nuvem](/pt-br/cloud-computing/) que oferece mÃĄquinas [físicas](/pt-br/bare-metal-machine/) ou [virtualizadas](/pt-br/virtualization/), armazenamento e recursos de rede sob demanda em um modelo pague conforme o uso. +Os provedores de nuvem possuem e operam o hardware e o software, disponíveis para os consumidores em implantaçÃĩes de nuvem pÃēblica, privada ou híbrida. + +## Problema relacionado + +Em configuraçÃĩes tradicionais (_on-premise_), as organizaçÃĩes geralmente concentram seus esforços no uso efetivo de recursos de computaçÃŖo. +Os _data centers_ precisam ser construídos para potencializar o pico da demanda, mesmo que seja necessÃĄrio em apenas 1% do tempo. +Durante a menor demanda, esses recursos de computaçÃŖo ficam ociosos. +E, se a carga de trabalho aumentar acima da demanda esperada, existirÃĄ uma carÃĒncia de recursos de computaçÃŖo para processar a carga de trabalho. +Essa falta de escalabilidade leva ao aumento dos custos e ao uso ineficaz de recursos. + +## Como isso ajuda + +Com o IaaS, as organizaçÃĩes podem evitar a compra e manutençÃŖo em ativos computacionais e _data center_ para suas aplicaçÃĩes. +Uma infraestrutura sob demanda permite que as organizaçÃĩes aluguem recursos de computaçÃŖo conforme necessÃĄrio e adiem grandes gastos de capital, ou [CAPEX](https://pt.wikipedia.org/wiki/CAPEX), ao mesmo tempo em permite a flexibilidade de aumentar ou diminuir a escala. + +O IaaS reduz os custos iniciais para testar uma nova aplicaçÃŖo e para fornecer as instalaçÃĩes para implantar rapidamente uma infraestrutura. +Um provedor de nuvem Ê uma excelente opçÃŖo para ambientes de desenvolvimento ou teste, o que ajuda os desenvolvedores a experimentar e inovar. diff --git a/content/pt-br/infrastructure-as-code.md b/content/pt-br/infrastructure-as-code.md index b98c1b4352..81d56c371b 100644 --- a/content/pt-br/infrastructure-as-code.md +++ b/content/pt-br/infrastructure-as-code.md @@ -2,7 +2,7 @@ title: Infraestrutura como CÃŗdigo status: Completed category: conceito -tags: ["infraestrutura", "", ""] +tags: ["infraestrutura", "metodologia", ""] --- ## O que Ê diff --git a/content/pt-br/kubernetes.md b/content/pt-br/kubernetes.md new file mode 100644 index 0000000000..1079e28308 --- /dev/null +++ b/content/pt-br/kubernetes.md @@ -0,0 +1,33 @@ +--- +title: Kubernetes +status: Completed +category: tecnologia +tags: ["infraestrutura", "fundamental", ""] +--- + +## O que Ê + +Kubernetes, normalmente abreviado como K8s, Ê um orquestrador de contÃĒineres de cÃŗdigo aberto. +Ele automatiza o ciclo de vida de aplicaçÃĩes em contÃĒineres em infraestruturas modernas, funciona como um "sistema operacional de datacenter" que gerencia aplicativos em um [sistema distribuído](/distributed-systems/). + +O Kubernetes planeja os [contÃĒineres](/pt-br/container/) entre [nÃŗs](/pt-br/nodes/) de um [cluster](/pt-br/cluster/), agrupando vÃĄrios recursos de infraestrutura como balanceador de carga, armazenamento persistente, etc., para executar aplicaçÃĩes em contÃĒineres. + +O Kubernetes permite automaçÃŖo e extensibilidade, permitindo que os usuÃĄrios implantem aplicativos declarativamente (veja abaixo) de maneira reproduzível. É extensível por meio de sua [API](/pt-br/application-programming-interface/), permitindo que profissionais experientes do Kubernetes aproveitem seus recursos de automaçÃŖo de acordo com suas necessidades. + +## Problema relacionado + +A automaçÃŖo de infraestrutura e o gerenciamento declarativo de configuraçÃŖo sÃŖo conceitos importantes hÃĄ muito tempo, mas se tornaram mais prementes à medida que a [computaçÃŖo em nuvem](/pt-br/cloud-computing/) ganhou popularidade. +À medida que a demanda por recursos de computaçÃŖo aumenta e as organizaçÃĩes precisam fornecer mais recursos operacionais com menos engenheiros, novas tecnologias e mÊtodos de trabalho sÃŖo necessÃĄrios para atender a essa demanda. + +## Como isso ajuda + +De forma similar às ferramentas tradicionais de [infraestrutura como cÃŗdigo](/pt-br/infrastructure-as-code/), o Kubernetes ajuda na automaçÃŖo e tem a vantagem de trabalhar com contÃĒineres. +Os contÃĒineres sÃŖo mais resistentes ao desvio de configuraçÃŖo do que [mÃĄquinas virtuais](/pt-br/virtual-machine/) ou físicas. + +Adicionalmente, o Kubernetes funciona de forma declarativa, o que significa que, em vez de fornecer instruçÃĩes ao Kubernetes os operadores descrevem o que desejam - geralmente com arquivos de manifesto (por exemplo, no formato YAML) - definindo como a infraestrutura deve ser. + +Kubernetes cuida entÃŖo do "como" e isso o torna extremamente compatível com a infraestrutura como cÃŗdigo. + +O Kubernetes tambÊm possui [auto recuperaçÃŖo](/self-healing/). +O estado real do cluster sempre corresponderÃĄ ao estado desejado pelo operador. Se for detectado um desvio ao que foi descrito nos arquivos de manifesto um controlador do Kubernetes entrarÃĄ em açÃŖo e procederÃĄ com a correçÃŖo. +Embora a infraestrutura que o Kubernetes possa estar em constante mudança, o Kubernetes se adapta de forma constante e automÃĄtica a estas mudanças, garantindo que o estado desejado permaneça. diff --git a/content/pt-br/microservices.md b/content/pt-br/microservices.md new file mode 100644 index 0000000000..4aefb95ad1 --- /dev/null +++ b/content/pt-br/microservices.md @@ -0,0 +1,32 @@ +--- +title: Microsserviços +status: Completed +category: conceito +tags: ["arquitetura", "", ""] +--- + +## O que Ê + +Os microsserviços tÃĒm uma abordagem moderna para o desenvolvimento de aplicaçÃĩes que aproveita as tecnologias nativas da nuvem. +Embora as aplicaçÃĩes modernas, como a Netflix, pareçam ser uma Ãēnica aplicaçÃŖo, elas sÃŖo na verdade uma coleçÃŖo de serviços menores - todos trabalhando em colaboraçÃŖo. +Por exemplo, uma Ãēnica pÃĄgina que permite acessar, pesquisar e visualizar vídeos provavelmente Ê alimentada por serviços menores que lidam com um aspecto (por exemplo, pesquisa, autenticaçÃŖo e execuçÃŖo de visualizaçÃĩes no seu navegador). +Em resumo, os microsserviços referem-se a um padrÃŖo de arquitetura de aplicaçÃĩes geralmente contrÃĄria as [aplicaçÃĩes monolíticas](/monolithic-apps/). + +## Problema relacionado + +Os microsserviços sÃŖo uma resposta aos desafios colocados por aplicaçÃĩes monolíticas. +Geralmente, diferentes partes de uma aplicaçÃŖo precisarÃŖo ser dimensionadas separadamente. +Por exemplo, uma loja online terÃĄ mais visualizaçÃĩes de produtos do que a finalizaçÃŖo da compra. +Isso significa que vocÃĒ precisarÃĄ de mais cÃŗpias da funcionalidade de visualizaçÃŖo do produto em execuçÃŖo do que a conclusÃŖo da compra. +Em uma aplicaçÃŖo monolítica, essa lÃŗgica nÃŖo pode ser implantada individualmente. +Se vocÃĒ nÃŖo conseguir dimensionar a funcionalidade do produto individualmente, terÃĄ que duplicar toda a aplicaçÃŖo com todos os outros componentes que nÃŖo precisa - um uso ineficiente de recursos. +As aplicaçÃĩes monolíticas tambÊm tornam mais fÃĄcil para os desenvolvedores sucumbirem às armadilhas do projeto. +Como todo o cÃŗdigo estÃĄ em um sÃŗ lugar, Ê mais fÃĄcil tornar esse [cÃŗdigo bem acoplado](/pt-br/tightly-coupled-architectures/) e mais difícil de impor o princípio da separaçÃŖo de responsabilidades. +Os monÃŗlitos geralmente exigem que os desenvolvedores entendam toda a base de cÃŗdigo antes que possam ser produtivos. + +## Como isso ajuda + +Separar a funcionalidade em diferentes microsserviços facilita a implantaçÃŖo, atualizaçÃŖo e escala de forma independente. +Ao permitir que diferentes equipes se concentrem em sua prÃŗpria e pequena parte de uma aplicaçÃŖo maior, vocÃĒ tambÊm torna mais fÃĄcil para elas trabalharem em suas aplicaçÃĩes sem afetar negativamente o resto da organizaçÃŖo. +Embora os microsserviços resolvam muitos problemas, eles tambÊm criam sobrecarga operacional — as coisas que vocÃĒ precisa para implantar e acompanhar tÃĒm um aumento na ordem de grandeza ou mais. +Muitas [tecnologias nativas da nuvem](/pt-br/cloud-native-tech/) visam tornar os microsserviços mais fÃĄceis de implantar e gerenciar. diff --git a/content/pt-br/monolithic-apps.md b/content/pt-br/monolithic-apps.md new file mode 100644 index 0000000000..83d73a9aba --- /dev/null +++ b/content/pt-br/monolithic-apps.md @@ -0,0 +1,25 @@ +--- +title: AplicaçÃĩes Monolíticas +status: Completed +category: conceito +tags: ["arquitetura", "", ""] +--- + +## O que Ê + +Uma aplicaçÃŖo monolítica contÊm todas as funcionalidades em um Ãēnico programa. +Este Ê muitas vezes o lugar mais simples e fÃĄcil para começar ao fazer uma aplicaçÃŖo. +No entanto, uma vez que a aplicaçÃŖo cresce em complexidade, os monÃŗlitos podem se tornar difíceis de manter. +Com mais desenvolvedores trabalhando na mesma base de cÃŗdigo, a probabilidade de mudanças conflitantes e a necessidade de comunicaçÃŖo interpessoal entre desenvolvedores aumenta. + +## Problema relacionado + +A conversÃŖo de uma aplicaçÃŖo em [microsserviços](/microservices/) aumenta sua sobrecarga operacional — existe mais coisas para testar, implantar e executar. +No início do ciclo de vida de um produto, pode ser vantajoso adiar essa complexidade e construir uma aplicaçÃŖo monolítica atÊ que o produto seja determinado como bem-sucedido. + +## Como isso ajuda + +Um monÃŗlito bem projetado pode manter os princípios *lean*, sendo a maneira mais simples de colocar uma aplicaçÃŖo em funcionamento. +Quando o valor comercial da aplicaçÃŖo monolítica prova ser bem-sucedido, ela pode ser decomposta em microsserviços. +Desenvolver uma aplicaçÃŖo com base em microsserviços antes que ela tenha se mostrado valiosa pode ser um gasto prematuro de esforço de engenharia. +Se a aplicaçÃŖo nÃŖo produzir valor, esse esforço se torna desperdiçado. diff --git a/content/pt-br/nodes.md b/content/pt-br/nodes.md index e104d295ca..a63eaef0b0 100644 --- a/content/pt-br/nodes.md +++ b/content/pt-br/nodes.md @@ -2,7 +2,7 @@ title: NÃŗs status: Completed category: conceito -tags: ["arquitetura", "", ""] +tags: ["infraestrutura", "fundamento", ""] --- ## O que Ê diff --git a/content/pt-br/observability.md b/content/pt-br/observability.md new file mode 100644 index 0000000000..5a33f18482 --- /dev/null +++ b/content/pt-br/observability.md @@ -0,0 +1,24 @@ +--- +title: Observabilidade +status: Completed +category: conceito +tags: ["metodologia", "aplicaçÃŖo", "infraestrutura"] +--- + +## O que Ê + +Observabilidade Ê a capacidade de gerar e descobrir continuamente insights acionÃĄveis com base em sinais do sistema sob observaçÃŖo. +Em outras palavras, a observabilidade permite que os usuÃĄrios entendam o estado de um sistema a partir de sua saída externa e tome açÃŖo (corretiva). + +## Problema relacionado + +Os sistemas de computador sÃŖo medidos observando os sinais de baixo nível, tais como o tempo de CPU, a memÃŗria, o espaço em disco e os sinais de alto nível e de lÃŗgica de negÃŗcios, incluindo tempos de resposta de uma API, erros, transaçÃĩes por segundo, etc. + +A observabilidade de um sistema tem um impacto significativo em seus custos operacionais e de desenvolvimento. +Sistemas observÃĄveis produzem dados significativos e acionÃĄveis para seus operadores, permitindo que eles obtenham resultados favorÃĄveis (resposta mais rÃĄpida a incidentes, aumento da produtividade do desenvolvedor) e menos trabalho e tempo de inatividade. + +## Como isso ajuda + +Entender que mais informaçÃĩes nÃŖo se traduzem necessariamente em um sistema mais observÃĄvel Ê fundamental. +Na verdade, às vezes, a quantidade de informaçÃĩes geradas por um sistema pode dificultar a identificaçÃŖo de sinais valiosos a partir de ruído gerado pela aplicaçÃŖo. +A observabilidade requer os dados certos no momento certo para que o consumidor certo (humano ou software) tome as decisÃĩes certas. diff --git a/content/pt-br/platform-as-a-service.md b/content/pt-br/platform-as-a-service.md index a2489f2f78..18e5546183 100644 --- a/content/pt-br/platform-as-a-service.md +++ b/content/pt-br/platform-as-a-service.md @@ -1,8 +1,8 @@ --- title: Plataforma como serviço (PaaS) -status: Completed +status: Deprecated category: tecnologia -tags: ["fundamentos", "plataforma", ""] +tags: ["descontinuado", "", ""] --- ## O que Ê diff --git a/content/pt-br/portability.md b/content/pt-br/portability.md index 4c5b98cfa5..f4274b8dd0 100644 --- a/content/pt-br/portability.md +++ b/content/pt-br/portability.md @@ -2,7 +2,7 @@ title: Portabilidade status: Completed category: propriedade -tags: ["fundamentos", "", ""] +tags: ["fundamento", "propriedade", ""] --- Uma característica do software, a portabilidade Ê uma forma de reutilizaçÃŖo que ajuda a evitar o "travamento" em determinados ambientes operacionais, por exemplo, provedores de nuvem, sistemas operacionais ou fornecedores. diff --git a/content/pt-br/reliability.md b/content/pt-br/reliability.md index d40781feba..9d51cfff4b 100644 --- a/content/pt-br/reliability.md +++ b/content/pt-br/reliability.md @@ -2,7 +2,7 @@ title: Confiabilidade status: Completed category: propriedade -tags: ["fundamentos", "", ""] +tags: ["fundamento", "propriedade", ""] --- Do ponto de vista nativo da nuvem, a confiabilidade refere-se ao quÃŖo bem um sistema responde a falhas. diff --git a/content/pt-br/scalability.md b/content/pt-br/scalability.md index 90bb936c7e..cf6d741d29 100644 --- a/content/pt-br/scalability.md +++ b/content/pt-br/scalability.md @@ -2,7 +2,7 @@ title: Escalabilidade status: Completed category: propriedade -tags: ["fundamentos", "", ""] +tags: ["fundamento", "propriedade", ""] --- Escalabilidade refere-se ao quÃŖo bem um sistema pode crescer. diff --git a/content/pt-br/serverless.md b/content/pt-br/serverless.md index 1ff9e227a5..cb6293b05e 100644 --- a/content/pt-br/serverless.md +++ b/content/pt-br/serverless.md @@ -2,7 +2,7 @@ Title: Serverless Status: Completed Category: tecnologia -tags: ["infraestrutura", "", ""] +tags: ["arquitetura", "", ""] --- ## O que Ê diff --git a/content/pt-br/service.md b/content/pt-br/service.md index a31add7c14..3e727142ee 100644 --- a/content/pt-br/service.md +++ b/content/pt-br/service.md @@ -2,7 +2,7 @@ title: Serviço status: Completed category: conceito -tags: ["arquitetura", "", ""] +tags: ["aplicaçÃŖo", "fundamento", ""] --- -Observe que, em Tecnologia da InformaçÃŖo, o termo serviço tem vÃĄrios significados. Vamos nos concentrar na mais tradicional: serviço como no microsserviço. Como ou mesmo se os serviços diferem dos microsserviços Ê sutil, e pessoas diferentes podem ter opiniÃĩes diferentes. Para uma definiçÃŖo de alto nível, vamos tratÃĄ-los da mesma forma. Consulte a definiçÃŖo [microsserviço](/microservices/). \ No newline at end of file +Observe que, em Tecnologia da InformaçÃŖo, o termo serviço tem vÃĄrios significados. Vamos nos concentrar na mais tradicional: serviço como no microsserviço. Como ou mesmo se os serviços diferem dos microsserviços Ê sutil, e pessoas diferentes podem ter opiniÃĩes diferentes. Para uma definiçÃŖo de alto nível, vamos tratÃĄ-los da mesma forma. Consulte a definiçÃŖo [microsserviço](/microservices/). diff --git a/content/pt-br/software-as-a-service.md b/content/pt-br/software-as-a-service.md index 5977ec85dc..d74aa4b0c1 100644 --- a/content/pt-br/software-as-a-service.md +++ b/content/pt-br/software-as-a-service.md @@ -1,8 +1,8 @@ --- Title: Software como Serviço -Status: Completed +Status: Deprecated Category: tecnologia -tags: ["fundamentos", "plataforma", ""] +tags: ["descontinuado", "", ""] --- ## O que Ê diff --git a/content/pt-br/stateful-apps.md b/content/pt-br/stateful-apps.md index 6cb4d435c5..07032e792f 100644 --- a/content/pt-br/stateful-apps.md +++ b/content/pt-br/stateful-apps.md @@ -2,12 +2,12 @@ title: AplicaçÃĩes Stateful status: Completed category: conceito -tags: ["fundamentos", "", ""] +tags: ["fundamento", "aplicaçÃŖo", ""] --- ## O que Ê -Quando falamos das aplicaçÃĩes stateful e [stateless](/pt-br/stateless-apps/), nos referimos a todos os dados que a aplicaçÃŖo precisa armazenar para funcionar como projetada. Qualquer tipo de loja online que lembre do seu carrinho Ê uma aplicaçÃŖo stateful, por exemplo. +Quando falamos das aplicaçÃĩes stateful e stateless, nos referimos a todos os dados que a aplicaçÃŖo precisa armazenar para funcionar como projetada. Qualquer tipo de loja online que lembre do seu carrinho Ê uma aplicaçÃŖo stateful, por exemplo. ## Problema relacionado diff --git a/content/pt-br/stateless-apps.md b/content/pt-br/stateless-apps.md index add6fde209..0b48896079 100644 --- a/content/pt-br/stateless-apps.md +++ b/content/pt-br/stateless-apps.md @@ -2,7 +2,7 @@ title: AplicaçÃĩes Stateless status: Feedback Appreciated category: tecnologia -tags: ["fundamentos", "", ""] +tags: ["fundamento", "aplicaçÃŖo", ""] --- ## O que Ê diff --git a/content/pt-br/tightly-coupled-architectures.md b/content/pt-br/tightly-coupled-architectures.md index a9ce413378..476b105c0c 100644 --- a/content/pt-br/tightly-coupled-architectures.md +++ b/content/pt-br/tightly-coupled-architectures.md @@ -2,7 +2,7 @@ title: Arquitetura Acoplada status: Completed category: propriedade -tags: ["fundamentos", "", ""] +tags: ["fundamento", "arquitetura", "propriedade"] --- Arquitetura acoplada Ê um estilo de arquitetura em que vÃĄrios componentes da aplicaçÃŖo sÃŖo interdependentes (o paradigma oposto de [arquiteturas desacopladas](/loosely-coupled-architecture/)). Isso significa que uma mudança em um componente provavelmente afetarÃĄ outros componentes. Geralmente Ê mais fÃĄcil de implementar do que estilos de arquitetura desacopladas, mas pode deixar um sistema mais vulnerÃĄvel a falhas em cascata. Esse estilo de arquitetura tambÊm tende a exigir implementaçÃĩes coordenadas de componentes, o que pode se tornar um obstÃĄculo à produtividade do desenvolvedor. diff --git a/content/pt-br/transport-layer-security.md b/content/pt-br/transport-layer-security.md index 3f8edab924..7aa7f484bd 100644 --- a/content/pt-br/transport-layer-security.md +++ b/content/pt-br/transport-layer-security.md @@ -2,7 +2,7 @@ title: TLS status: Completed category: conceito -tags: ["segurança", "", ""] +tags: ["segurança", "rede", ""] --- ## O que Ê diff --git a/content/pt-br/version-control.md b/content/pt-br/version-control.md index c487d4580f..5ff30a6530 100644 --- a/content/pt-br/version-control.md +++ b/content/pt-br/version-control.md @@ -1,8 +1,8 @@ --- title: Controle de VersÃŖo -status: Completed +status: Deprecated category: tecnologia -tags: ["metodologia", "", ""] +tags: ["descontinuado", "", ""] --- ## O que Ê diff --git a/content/pt-br/virtual-machine.md b/content/pt-br/virtual-machine.md index ddb8d912f0..44a23ba6d4 100644 --- a/content/pt-br/virtual-machine.md +++ b/content/pt-br/virtual-machine.md @@ -2,7 +2,7 @@ title: MÃĄquina Virtual status: Completed category: tecnologia -tags: ["fundamentos", "infraestrutura", ""] +tags: ["fundamento", "infraestrutura", ""] --- ## O que Ê diff --git a/content/pt-br/virtualization.md b/content/pt-br/virtualization.md index bb00140260..8c37647c1e 100644 --- a/content/pt-br/virtualization.md +++ b/content/pt-br/virtualization.md @@ -2,7 +2,7 @@ title: VirtualizaçÃŖo status: completed category: tecnologia -tags: ["fundamentos", "infraestrutura", ""] +tags: ["fundamento", "infraestrutura", "metodologia"] --- ## O que Ê diff --git a/content/ur/_TEMPLATE.md b/content/ur/_TEMPLATE.md new file mode 100644 index 0000000000..bc08dc1a39 --- /dev/null +++ b/content/ur/_TEMPLATE.md @@ -0,0 +1,21 @@ +--- +title: ڈیŲÛŒŲ†ÛŒØ´Ų† ŲšÛŒŲ…ŲžŲ„ÛŒŲš (Definition Template) +status: Completed +category: ØĒØĩŲˆØą +--- + +## یہ ڊیا ہے + +ØĒØĩŲˆØą ڊا ŲŲˆØąÛŒ ØŽŲ„اØĩہ اŲˆØą یہ ڊیا ہے۔ + +## Ų…ØŗØĻŲ„ہ یہ Ø­Ų„ ÚŠØąØĒا ہے + +اØŗ Ų…ØŗØĻŲ„Û’ ÚŠÛŒ ŲˆØļاحØĒ ÚŠØąÛŒÚē ØŦØŗے یہ ØŽØˇØ§Ø¨ ÚŠØąØĒا ہے۔ Ų…ØĢاŲ„ÛŒ ØˇŲˆØą ŲžØąØŒ اØŗ اØĩØˇŲ„اح ڊا Ø°ÚŠØą بڞی Ų†Û ÚŠØąÛŒÚē ØŦØŗ ÚŠÛŒ ØĸŲž ØĒØšØąÛŒŲ ÚŠØą ØąÛÛ’ ہیÚē۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +بیاŲ† ÚŠØąÛŒÚē ڊہ یہ اØĩØˇŲ„اح اŲˆŲžØą بیاŲ† ÚŠØąØ¯Û Ų…ØŗØĻŲ„Û’ ÚŠŲˆ ÚŠÛŒØŗے Ø­Ų„ ÚŠØąØĒی ہے۔ + +## Ų…ØĒØšŲ„Ų‚ہ Ø´ØąØ§ØĻØˇ + +Ų…ØĒØšŲ„Ų‚ہ Ų„ØēØĒ ÚŠÛŒ Ø´ØąØ§ØĻØˇ شاŲ…Ų„ ÚŠØąÛŒÚē (Ø§Ú¯Øą Ų‚ابŲ„ Ø§ØˇŲ„اŲ‚ ہŲˆ) diff --git a/content/ur/_index.md b/content/ur/_index.md new file mode 100644 index 0000000000..958b28ea0a --- /dev/null +++ b/content/ur/_index.md @@ -0,0 +1,53 @@ +--- +title: "ÚŠŲ„اؤڈ ÚŠÛŒ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ (Cloud Native Glossary)" +--- + + +# ÚŠŲ„اؤڈ ÚŠÛŒ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ + +Cloud Native Glossary ایڊ ŲžØąŲˆØŦیڊŲš ہے ØŦØŗ ÚŠÛŒ Ų‚یادØĒ CNCF Ø¨Ø˛Ų†Øŗ ŲˆÛŒŲ„ÛŒŲˆ Øŗب ÚŠŲ…ÛŒŲšÛŒ (BVS) ÚŠØąØĒی ہے۔ +اØŗ ڊا Ų…Ų‚Øĩد ÚŠØŗی بڞی ØŗابŲ‚ہ ​​ØĒÚŠŲ†ÛŒÚŠÛŒ ØšŲ„Ų… ÚŠÛŒ ØļØąŲˆØąØĒ ÚŠÛ’ بØēÛŒØą ÚŠŲ„اؤڈ ÚŠÛ’ Ų…Ų‚اŲ…ÛŒ ØĒØĩŲˆØąØ§ØĒ ÚŠŲˆ ŲˆØ§ØļØ­ اŲˆØą Øŗادہ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē بیاŲ† ÚŠØąŲ†Ø§ ہے۔ + +

A woman and two men presenting technical info on a stage

+ +## ØĒؚاŲˆŲ† ÚŠØąŲ†Ø§ + +ÛØą ایڊ ÚŠŲˆ ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ Ų…ÛŒÚē ØĒبدیŲ„ÛŒŲˆÚē، اØļاŲÛ’ اŲˆØą بہØĒØąÛŒ ÚŠÛŒ ØĒØŦŲˆÛŒØ˛ دیŲ†Û’ ÚŠÛ’ Ų„یے Ų…دؚŲˆ ڊیا ØŦاØĒا ہے۔ +ہŲ… اØŗ Ų…Ø´ØĒØąÚŠÛ Ų„ØēØĒ ÚŠŲˆ ØĒÛŒØ§Øą ÚŠØąŲ†Û’ اŲˆØą بہØĒØą بŲ†Ø§Ų†Û’ ÚŠÛ’ Ų„یے CNCF ÚŠÛ’ Ø˛ÛŒØąØ§Ų†ØĒظاŲ… ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ŲžØą Ų…بŲ†ÛŒ ØšŲ…Ų„ ÚŠŲˆ اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē۔ +یہ Ų„ØēØĒ ایڊ ŲˆÛŒŲ†ÚˆØą ØēÛŒØą ØŦاŲ†Ø¨Ø¯Ø§Øą ŲžŲ„ÛŒŲš ŲØ§ØąŲ… Ų…ہیا ÚŠØąØĒی ہے ØĒاڊہ ÚŠŲ„اؤڈ ÚŠÛŒ Ų…Ų‚اŲ…ÛŒ ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦÛŒØ˛ ÚŠÛ’ Ø§ØąØ¯ Ú¯ØąØ¯ Ų…Ø´ØĒØąÚŠÛ اŲ„ŲØ§Ø¸ ÚŠŲˆ Ų…Ų†Ø¸Ų… ڊیا ØŦا ØŗÚŠÛ’Û” +Ų…Ų†ØĩŲˆØ¨Û’ ÚŠÛ’ Ų…Ų‚Øĩد اŲˆØą Ú†Ø§ØąŲšØą ÚŠÛŒ ŲžØ§Ø¨Ų†Ø¯ÛŒ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ØĒŲ…اŲ… Ø´ØąÚŠØ§ØĄ ÚŠÛŒ ØˇØąŲ Øŗے ØĒؚاŲˆŲ† ڊا ØŽÛŒØąŲ…Ų‚دŲ… ڊیا ØŦاØĒا ہے۔ + +ÚŠŲˆØĻی بڞی ØŦŲˆ Ø´ØąØ§ÚŠØĒ ÚŠØąŲ†Ø§ چاہØĒا ہے ŲˆÛ GitHub ڊا Ų…ØŗØĻŲ„ہ ØŦŲ…Øš ÚŠØąØ§ ØŗÚŠØĒا ہے یا ŲžŲ„ ÚŠÛŒ Ø¯ØąØŽŲˆØ§ØŗØĒ بŲ†Ø§ ØŗÚŠØĒا ہے۔ +Ø¨ØąØ§Û ÚŠØąŲ… اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē ڊہ ØĸŲž [اØŗŲšØ§ØĻŲ„ گاØĻیڈ](/style-guide/)ÚŠÛŒ ŲžÛŒØąŲˆÛŒ ÚŠØąØĒے ہیÚē، دØŗØĒاŲˆÛŒØ˛ [ÚŠÛŒØŗے ØĒؚاŲˆŲ† ÚŠØąÛŒÚē ](/contribute/)ÚŠŲˆ ŲžÚ‘ÚžÛŒÚē، اŲˆØą CNCF Slack ŲžØą[glossary#](https://cloud-native.slack.com/archives/C02TX20MQBB) چیŲ†Ų„ Ų…ÛŒÚē شاŲ…Ų„ ہŲˆÚē۔ +اŲ† Ų„ŲˆÚ¯ŲˆÚē ÚŠÛ’ Ų„یے ایڊ [glossary-localizations#](https://cloud-native.slack.com/archives/C02N2RGFXDF) چیŲ†Ų„ بڞی ہے ØŦŲˆ اŲžŲ†ÛŒ Ų…Ø§Ø¯ØąÛŒ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē Ų„ØēØĒ ڊا ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąŲ†Ø§ چاہØĒے ہیÚē۔ + +## اؚØĒØąØ§ŲØ§ØĒ + +ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ CNCF Ų…Ø§ØąÚŠÛŒŲšŲ†Ú¯ ÚŠŲ…ÛŒŲšÛŒ (Ø¨Ø˛Ų†Øŗ ŲˆÛŒŲ„ÛŒŲˆ Øŗب ÚŠŲ…ÛŒŲšÛŒ) ÚŠÛ’ Ø°ØąÛŒØšÛ Ø´ØąŲˆØš ÚŠÛŒ Ú¯ØĻی ØĒÚžÛŒ اŲˆØą اØŗ Ų…ÛŒÚē اŲ† ÚŠÛ’ ØĒؚاŲˆŲ† شاŲ…Ų„ ہیÚē +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/)، +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/)، +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk)، +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/)، +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/)، +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca)، +اŲˆØą بہØĒ Øŗے ØĒؚاŲˆŲ† ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų†Û” +Ø´ØąØ§ÚŠØĒ Ø¯Ø§ØąŲˆÚē ÚŠÛŒ Ų…ÚŠŲ…Ų„ ŲÛØąØŗØĒ ÚŠÛ’ Ų„یے، Ø¨ØąØ§Û ÚŠØąŲ… [اØŗ GitHub ØĩŲØ­Û](https://github.com/cncf/glossary/graphs/contributors) ÚŠŲˆ دیڊڞیÚē۔ + +Ų„ØēØĒ ÚŠÛŒ دیڊڞ بڞاŲ„ +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/)، +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/)، +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/)، +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/) +، اŲˆØą [Seokho Son](https://www.linkedin.com/in/seokho-son/) Ų†Û’ ڊی۔ + +ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ ÚŠÛŒ Ø§ØąØ¯Ųˆ Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ڊا ØĸØēØ§Ø˛ [ Ø§ØąØ¯Ųˆ Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ŲšÛŒŲ…](https://cloud-native.slack.com/archives/C042NGNKDGT) Ų†Û’ ڊیا ØĒڞا اŲˆØą اØŗ Ų…ÛŒÚē + +[Saim Safdar](https://www.linkedin.com/in/saim-safder/)، +[Waleed Ahmed](https://www.linkedin.com/in/waleed-ahmed3/)، +[Zubair Haque](https://www.linkedin.com/in/zubair-haque/)، +[Asad Ali](https://www.linkedin.com/in/asad-ali-86356220a/) +اŲˆØą بہØĒ Øŗے دŲˆØŗØąÛ’ Ø´ØąØ§ÚŠØĒ Ø¯Ø§Øą شاŲ…Ų„ ہیÚē۔ + +## Ų„اØĻØŗŲ†Øŗ + +ØĒŲ…اŲ… ÚŠŲˆÚˆ Ø´ØąØ§ÚŠØĒیÚē Apache 2.0 Ų„اØĻØŗŲ†Øŗ ÚŠÛ’ ØĒØ­ØĒ ہیÚē۔ دØŗØĒاŲˆÛŒØ˛Ø§ØĒ CC BY 4.0 ÚŠÛ’ ØĒØ­ØĒ ØĒŲ‚ØŗیŲ… ÚŠÛŒ Ú¯ØĻی ہیÚē۔ diff --git a/content/ur/abstraction.md b/content/ur/abstraction.md new file mode 100644 index 0000000000..26ddc0cf84 --- /dev/null +++ b/content/ur/abstraction.md @@ -0,0 +1,11 @@ +--- +title: ØĒØŦØąÛŒ (Abstraction) +status: Completed +category: ØĩŲØĒ +tags: ["ŲŲ† ØĒØšŲ…ÛŒØą", "", ""] +--- + +ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ÚŠÛ’ ØĒŲ†Ø§Ø¸Øą Ų…ÛŒÚē، ایڊ ØĒØŦØąÛŒØ¯ ایڊ ایØŗی Ų†Ų…اØĻŲ†Ø¯Ú¯ÛŒ ہے ØŦŲˆ [؎دŲ…اØĒ](/service/) ÚŠÛ’ ØĩØ§ØąŲ +(ØŦØŗ ڊا Ų…ØˇŲ„ب ÚŠŲ…ŲžÛŒŲˆŲšØą ŲžØąŲˆÚ¯ØąØ§Ų…Ø˛ یا Ų„ŲˆÚ¯) Øŗے ØĒŲØĩیŲ„اØĒ ÚŠŲˆ چھŲžØ§ØĒا ہے، ØŦØŗ Øŗے Ų†Ø¸Ø§Ų… ÚŠŲˆ Ø˛ÛŒØ§Ø¯Û ؚاŲ… بŲ†Ø§ÛŒØ§ ØŦاØĒا ہے اŲˆØą اØŗ ØˇØąØ­ ØĸØŗاŲ†ÛŒ Øŗے ØŗŲ…ØŦڞا ØŦاØĒا ہے۔ ایڊ اچڞی Ų…ØĢاŲ„ ØĸŲž ÚŠÛ’ Ų„ÛŒŲž ŲšØ§Ųž ڊا ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ہے۔ یہ ØĸŲž ڊا ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠÛŒØŗے ڊاŲ… ÚŠØąØĒا ہے اØŗ ÚŠÛŒ ØĒŲ…اŲ… ØĒŲØĩیŲ„اØĒ ڊا ØŽŲ„اØĩہ ÚŠØąØĒا ہے۔ ØĸŲž ÚŠŲˆØŗی ŲžÛŒ یŲˆ ، Ų…ÛŒŲ…ŲˆØąÛŒØŒ اŲˆØą ŲžØąŲˆÚ¯ØąØ§Ų…ŲˆÚē ÚŠŲˆ ÚŠÛŒØŗے ہیŲ†ÚˆŲ„ ڊیا ØŦاØĒا ہے ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē کچھ ØŦاŲ†Ų†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ Ų†ÛÛŒÚē ہے، ØĸŲž ØĩØąŲ اŲˆ ایØŗ ÚŠŲˆ چŲ„اØĒے ہیÚē اŲˆØą اŲˆ ایØŗ ØĒŲØĩیŲ„اØĒ ÚŠÛ’ ØŗاØĒÚž ڈیŲ„ ÚŠØąØĒے ہیÚē۔ یہ ØĒŲ…اŲ… ØĒŲØĩیŲ„اØĒ اŲˆ ایØŗ "ŲžØąØ¯Û’" یا ØĒØŦØąÛŒØ¯ ÚŠÛ’ ŲžÛŒÚ†ÚžÛ’ ŲžŲˆØ´ÛŒØ¯Û ہیÚē۔ + +ØŗØŗŲšŲ…Ø˛ Ų…ÛŒÚē ؚاŲ… ØˇŲˆØą ŲžØą Ų…ØĒؚدد ØĒØŦØąÛŒØ¯ÛŒ ŲžØąØĒیÚē ہŲˆØĒی ہیÚē۔ یہ Ų†Ų…ایاÚē ØˇŲˆØą ŲžØą ØĒØąŲ‚ÛŒ ÚŠŲˆ ØĸØŗاŲ† بŲ†Ø§ØĒا ہے۔ ŲžØąŲˆÚ¯ØąØ§Ų…Ų†Ú¯ ÚŠØąØĒے ŲˆŲ‚ØĒ، ڈŲˆÛŒŲ„ŲžØąØ˛ ایڊ ؎اØĩ ØĒØŦØąÛŒØ¯ÛŒ ŲžØąØĒ ÚŠÛ’ ØŗاØĒÚž Ų…ØˇØ§Ø¨Ų‚ØĒ ØąÚŠÚžŲ†Û’ ŲˆØ§Ų„Û’ اØŦØ˛Ø§ØĄ ØĒÛŒØ§Øą ÚŠØąØĒے ہیÚē اŲˆØą اŲ† ØĒŲ…اŲ… بŲ†ÛŒØ§Ø¯ÛŒ ØŽØĩŲˆØĩیاØĒ ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē ŲÚŠØą ÚŠØąŲ†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ Ų†ÛÛŒÚē ہے ØŦŲˆ بہØĒ Ų…ØĒŲØ§ŲˆØĒ ہŲˆ ØŗÚŠØĒی ہیÚē۔ Ø§Ú¯Øą یہ ØĒØŦØąÛŒØ¯ÛŒ ŲžØąØĒ ÚŠÛ’ ØŗاØĒÚž ڊاŲ… ÚŠØąØĒا ہے، ØĒŲˆ یہ ØŗØŗŲšŲ… ÚŠÛ’ ØŗاØĒÚž ڊاŲ… ÚŠØąØĒا ہے - اØŗ Øŗے ÚŠŲˆØĻی ŲØąŲ‚ Ų†ÛÛŒÚē ŲžÚ‘ØĒا ہے ڊہ ہڈ ÚŠÛ’ Ų†ÛŒÚ†Û’ ڊیا ہے۔ diff --git a/content/ur/application-programming-interface.md b/content/ur/application-programming-interface.md new file mode 100644 index 0000000000..beeb9e24d0 --- /dev/null +++ b/content/ur/application-programming-interface.md @@ -0,0 +1,20 @@ +--- +title: ایŲžŲ„یڊیشŲ† ŲžØąŲˆÚ¯ØąØ§Ų…Ų†Ú¯ اŲ†ŲšØąŲÛŒØŗ(API) +status: Completed +category: ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +tags: ["ŲŲ† ØĒØšŲ…ÛŒØą", "بŲ†ÛŒØ§Ø¯ÛŒ", ""] +--- + +## یہ ڊیا ہے؟ + +اے ŲžÛŒ ØĸØĻی ایڊ ایØŗا ØˇØąÛŒŲ‚ہ ہے ØŦØŗ ÚŠÛ’ Ø°ØąÛŒØšÛ’ ÚŠŲ…ŲžÛŒŲˆŲšØą ŲžØąŲˆÚ¯ØąØ§Ų…Ø˛ ØĸŲžØŗ Ų…ÛŒÚē ØĒؚاŲ…Ų„ ÚŠØąØĒے ہیÚē۔ ØŦØŗ ØˇØąØ­ اŲ†ØŗاŲ† ŲˆÛŒØ¨ ØŗاØĻŲš ŲžØą ŲˆÛŒØ¨ ŲžÛŒØŦ ÚŠÛ’ Ø°ØąÛŒØšÛ’ ØĒؚاŲ…Ų„ ÚŠØąØĒے ہیÚē، ایڊ اے ŲžÛŒ ØĸØĻی ÚŠŲ…ŲžÛŒŲˆŲšØą ŲžØąŲˆÚ¯ØąØ§Ų…Ø˛ ÚŠÛ’ Ø°ØąÛŒØšÛ’ ØĸŲžØŗ Ų…ÛŒÚē ØĒؚاŲ…Ų„ ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒا ہے۔ اŲ†ØŗاŲ†ÛŒ ØĒؚاŲ…Ų„اØĒ ÚŠÛ’ Ø¨ØąØšÚŠØŗ، ای ŲžÛŒ ØĸØĻی ÚŠÛŒ کچھ ŲžØ§Ø¨Ų†Ø¯ÛŒØ§Úē ہیÚē ڊہ اØŗ Øŗے ڊیا ŲžŲˆÚ†ÚžØ§ ØŦا ØŗÚŠØĒا ہے اŲˆØą ڊیا Ų†ÛÛŒÚē ŲžŲˆÚ†ÚžØ§ ØŦا ØŗÚŠØĒا۔ ØĒؚاŲ…Ų„ ŲžØą ڊیے ØŦاŲ†Û’ ŲˆØ§Ų„ÛŒ ŲžØ§Ø¨Ų†Ø¯ÛŒØ§Úē، ŲžØąŲˆÚ¯ØąØ§Ų…Ø˛ ÚŠÛ’ Ø¯ØąŲ…یاŲ† Ų…ØŗØĒØ­ÚŠŲ… اŲˆØą ŲŲ†ÚŠØ´Ų†Ų„ ØĒؚاŲ…Ų„ ŲžÛŒØ¯Ø§ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒی ہیÚē۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے؟ + +ØŦب ایŲžŲ„یڊیشŲ†Ø˛ Ø˛ÛŒØ§Ø¯Û ŲžÛŒÚ†ÛŒØ¯Û ہŲˆØĒے ہیÚē، ØĒŲˆ چھŲˆŲšÛ’ ÚŠŲˆÚˆ ÚŠÛŒ ØĒبدیŲ„ÛŒŲˆÚē Øŗے Ø¯ÛŒÚ¯Øą ŲŲ†ÚŠØ´Ų†Ų„ÛŒŲšÛŒ ŲžØą اŲ†ØĒہاØĻی Ų…ØĒاØĢØąØ§ØĒ ŲžÛŒØ¯Ø§ ہŲˆ ØŗÚŠØĒے ہیÚē۔ Ø§Ú¯Øą ایŲžŲ„یڊیشŲ†Ø˛ ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž Ų…ØŗØĒØ­ÚŠŲ… ØąÛŲ†Û’ ÚŠÛ’ ØŗاØĒÚž ØŗاØĒÚž بڑڞŲ†Û’ ÚŠÛŒ ØĩŲˆØąØĒ Ų…ÛŒÚē ہŲˆÚē ØĒŲˆ اŲ† ÚŠÛŒ ŲŲ†ÚŠØ´Ų†Ų„ÛŒŲšÛŒ ÚŠÛŒŲ„ØĻے ایڊ Ų…اڈیŲˆŲ„Øą ŲžÛŲ„Û’ Øŗے ہی ہŲˆŲ†Ø§ ØļØąŲˆØąÛŒ ہے۔ ای ŲžÛŒ ØĸØĻ ÚŠÛŒ ØēÛŒØą Ų…ŲˆØŦŲˆØ¯Ú¯ÛŒ ÚŠÛŒ ØĩŲˆØąØĒ Ų…ÛŒÚē، ایŲžŲ„یڊیشŲ†Ø˛ ÚŠÛ’ Ø¯ØąŲ…یاŲ† ØĒؚاŲ…Ų„ ÚŠÛ’ Ų„ØĻے ÚŠŲˆØĻی ŲØąÛŒŲ… ŲˆØąÚŠ Ų†ÛÛŒÚē ہŲˆØĒا۔ بØēÛŒØą ایڊ شیØĻØąÚˆ ŲØąÛŒŲ… ŲˆØąÚŠ ÚŠÛ’ØŒ [Ø§ØˇŲ„اŲ‚اØĒ ÚŠÛŒ بڑڞŲ†Û’](/scalability/) اŲˆØą ØĒÚŠŲ…ÛŒŲ„ ÚŠØąŲ†Û’ ÚŠÛŒŲ„ØĻے ڊاŲÛŒ Ų…Ø´ÚŠŲ„اØĒ ŲžÛŒØ´ ØĸØĒی ہیÚē۔ + + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے؟ + +ای ŲžÛŒ ØĸØĻی ، ÚŠŲ…ŲžÛŒŲˆŲšØą ŲžØąŲˆÚ¯ØąØ§Ų…Ø˛ یا Ø§ØˇŲ„اŲ‚اØĒ ÚŠŲˆ Ų…ØšÛŒŲ† شدہ اŲˆØą ØŗŲ…ØŦÚžŲ†Û’ ÚŠÛ’ Ų‚ابŲ„ ØˇØąÛŒŲ‚ہ Øŗے ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž ØĒؚاŲ…Ų„ ÚŠØąŲ†Û’ اŲˆØą Ų…ØšŲ„ŲˆŲ…اØĒ ڊا اشØĒØąØ§ÚŠ ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒا ہے۔ اŲ†ÛÛŒÚē حدیØĢ Ø§ØˇŲ„اŲ‚اØĒ ÚŠÛ’ Ų„یے بŲ†ÛŒØ§Ø¯ÛŒ ØĒØšŲ…ÛŒØąÛŒ اڊاØĻیŲˆÚē ÚŠÛŒ حیØĢیØĒ Øŗے ØŗŲ…ØŦڞا ØŦاØĒا ہے اŲˆØą اŲ†ÛÛŒÚē ØĒØąŲ‚ÛŒ دیŲ†Û’ ÚŠÛ’ Ų„یے ڈیŲˆÛŒŲ„ŲžØąØ˛ ÚŠŲˆ ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž Ø§ØˇŲ„اŲ‚اØĒ ÚŠŲˆ اŲ†ŲšÛŒÚ¯ØąÛŒŲš ÚŠØąŲ†Û’ ڊا ØˇØąÛŒŲ‚ہ دیØĒا ہے۔ ØŦب بڞی ØĸŲž [Ų…اØĻÛŒÚŠØąŲˆ ØŗØąŲˆØŗØ˛](/microservices/) ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē ØŗŲ†ÛŒÚē ڊہ ŲˆÛ باہŲ… ڊاŲ… ÚŠØąØąÛÛ’ ہیÚē، ØĒŲˆ ØĸŲž اØŗ باØĒ ڊا اŲ†Ø¯Ø§Ø˛Û Ų„گا ØŗÚŠØĒے ہیÚē ڊہ ŲˆÛ ایڊ ای ŲžÛŒ ØĸØĻی ÚŠÛ’ Ø°ØąÛŒØšÛ’ باہŲ… ڊاŲ… ÚŠØą ØąÛÛ’ ہیÚē۔ + diff --git a/content/ur/auto-scaling.md b/content/ur/auto-scaling.md new file mode 100644 index 0000000000..3af2745244 --- /dev/null +++ b/content/ur/auto-scaling.md @@ -0,0 +1,19 @@ +--- +title: ØĸŲšŲˆ اØŗÚŠÛŒŲ„Ų†Ú¯(Autoscaling) +status: Completed +category: ØĩŲØĒ +tags: ["بŲ†ÛŒØ§Ø¯ÛŒ ڈڞاŲ†Ú†Û", "", ""] +--- + +ØĸŲšŲˆ اØŗÚŠÛŒŲ„Ų†Ú¯ ایڊ ØŗØŗŲšŲ… ÚŠÛŒ ØŽŲˆØ¯ ب؎ŲˆØ¯ [Ø§ØˇŲ„اŲ‚اØĒ ÚŠÛŒ بڑڞŲ†Û’](/scalability/) ÚŠÛŒ ØĩŲ„احیØĒ ہے، ؚاŲ… ØˇŲˆØą ŲžØąØŒ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ŲˆØŗاØĻŲ„ ÚŠÛ’ Ų„حاظ Øŗے، ØĸŲšŲˆ اØŗÚŠÛŒŲ„Ų†Ú¯ ØŗØŗŲšŲ… ÚŠÛ’ ØŗاØĒڞ، ØļØąŲˆØąØĒ ŲžÚ‘Ų†Û’ ŲžØą ŲˆØŗاØĻŲ„ ØŽŲˆØ¯ ب؎ŲˆØ¯ شاŲ…Ų„ ہŲˆ ØŦاØĒے ہیÚē اŲˆØą ØĩØ§ØąŲ ÚŠÛ’ اØĒØ§Øą چڑڞاؤ ÚŠÛ’ Ų…ØˇØ§Ų„باØĒ ÚŠŲˆ ŲžŲˆØąØ§ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے بڑڞاۓ ØŦاØŗÚŠØĒے ہیÚē۔ ØĸŲšŲˆ اØŗÚŠÛŒŲ„Ų†Ú¯ ڊا ØšŲ…Ų„ Ų…ØŽØĒŲ„Ų ہŲˆØĒا ہے اŲˆØą Ų…ØŽØĒŲ„Ų Ų…ÛŒŲšØąÚŠØŗ، ØŦیØŗے Ų…ÛŒŲ…ŲˆØąÛŒ یا ŲžØąŲˆØŗیØŗ ŲšØ§ØĻŲ… ÚŠÛŒ بŲ†ÛŒØ§Ø¯ ŲžØą اØŗÚŠÛŒŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų‚ابŲ„ ہے۔ Ų…ÛŒŲ†ÛŒØŦڈ ÚŠŲ„اؤڈ ØŗØąŲˆØŗØ˛ ؚاŲ… ØˇŲˆØą ŲžØą ØĸŲšŲˆ اØŗÚŠÛŒŲ„Ų†Ú¯ ŲŲ†ÚŠØ´Ų†Ų„ŲšÛŒ Øŗے ŲˆØ§Ø¨ØŗØĒہ ہŲˆØĒی ہیÚē ÚŠÛŒŲˆŲ†ÚŠÛ Ø˛ÛŒØ§Ø¯Û ØĒØą ØĸŲ† ŲžØąÛŒŲ…ÛŒØŗ ØĒØšÛŒŲ†Ø§ØĒیŲˆÚē Øŗے ڊہیÚē Ø˛ÛŒØ§Ø¯Û ا؎ØĒÛŒØ§ØąØ§ØĒ اŲˆØą Ų†ŲØ§Ø° دØŗØĒیاب ہŲˆØĒےہیÚē۔ + +ŲžÛŲ„Û’ØŒ اŲ†ŲØąØ§ØŗŲšØąÚŠÚ†Øą اŲˆØą ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ ÚŠŲˆ بŲ„Ų†Ø¯ ØĒØąÛŒŲ† حد ŲžØą اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„ØĻے ØĒØšŲ…ÛŒØą ڊیا ØŦاØĒا ØĒڞا۔ اØŗ ŲŲ† ØĒØšŲ…ÛŒØą ڊا Ų…ØˇŲ„ب یہ ØĒڞا ڊہ Ø˛ÛŒØ§Ø¯Û ŲˆØŗاØĻŲ„ ÚŠŲˆ ÚŠŲ… اØŗØĒØšŲ…اŲ„ ڊیا گیا اŲˆØą ØĩØ§ØąŲÛŒŲ† ÚŠÛŒ ØĒبدیŲ„ ہŲˆŲ†Û’ ŲˆØ§Ų„ÛŒ Ų…ØˇØ§Ų„بØĒŲˆÚē ÚŠÛ’ Ų„حاظ Øŗے اŲ† ڊا اØŗØĒØšŲ…اŲ„ ØēÛŒØą Ų…ØŗØĒØ­ÚŠŲ…Û” ØēÛŒØą Ų…ØŗØĒØ­ÚŠŲ… ڊا Ų…ØˇŲ„ب ÚŠØ§ØąŲˆØ¨Ø§Øą ŲžØą Ø˛ÛŒØ§Ø¯Û Ų„اگØĒ ØĸØĒی اŲˆØą ØļØąŲˆØąØĒ Øŗے Ø˛ÛŒØ§Ø¯Û Ų…اŲ†Ú¯ ÚŠÛŒ ŲˆØŦہ Øŗے ÚŠØ§ØąŲˆØ¨Ø§Øą Ų…ÛŒÚē بŲ†Ø¯Ø´Û” + + ÚŠŲ„اؤڈ، [ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų†](/virtualization/) اŲˆØą ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ ÚŠÛ’ اŲ†Ø­ØĩØ§Øą ÚŠŲˆ[ ÚŠŲ†ŲšÛŒŲ†ØąØ§ØĻØ˛](/containerization/) ÚŠØąÚŠÛ’ØŒ ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē ایØŗی ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ بŲ†Ø§ ØŗÚŠØĒی ہیÚē ØŦŲˆ ØĩØ§ØąŲÛŒŲ† ÚŠÛŒ Ų…ØˇØ§Ų„باØĒ ÚŠÛ’ Ų…ØˇØ§Ø¨Ų‚ Ų…ÛŒØ˛Ø¨Ø§Ų†ÛŒ ÚŠØąÛŒÚē۔ ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē ایŲžŲ„یڊیشŲ† ÚŠÛŒ Ų…ØˇØ§Ų„بØĒ ÚŠŲˆ Ų…اŲ†ÛŒŲšØą ÚŠØą ØŗÚŠØĒی ہیÚē اŲˆØą ØŽŲˆØ¯ ÚŠØ§Øą بڑڞا ØŗÚŠØĒے ہیÚē ØĒاڊہ ØĩØ§ØąŲÛŒŲ† ÚŠŲˆ بہØĒØąÛŒŲ† ØĒØŦØąØ¨Û Ų…Ų„ ØŗÚŠÛ’Û” + Ų†ÛŒŲšŲŲ„یڊØŗ ÚŠÛŒ ØŦŲ…ؚہ ÚŠÛŒ شب ÚŠŲˆ دیڊڞŲ†Û’ ŲˆØ§Ų„ŲˆÚē Ų…ÛŒÚē اØļاŲÛ ÚŠÛŒ ØĒؚداد ÚŠŲˆ دیڊڞیÚē۔ +ØĸŲšŲˆ اØŗÚŠÛŒŲ„ ØĸؤŲš ڊا Ų…ØˇŲ„ب ہے Ų…ØĒØ­ØąÚŠ ØˇŲˆØą ŲžØą Ų…Ø˛ÛŒØ¯ ŲˆØŗاØĻŲ„ شاŲ…Ų„ ÚŠØąŲ†Ø§: Ų…ØĢاŲ„ ÚŠÛ’ ØˇŲˆØą ŲžØąØŒ Ø˛ÛŒØ§Ø¯Û ŲˆÛŒÚˆÛŒŲˆ اØŗŲšØąÛŒŲ…Ų†Ú¯ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیŲ†Û’ ŲˆØ§Ų„Û’ ØŗØąŲˆØąØ˛ ÚŠÛŒ ØĒؚداد Ų…ÛŒÚē اØļاŲÛ ÚŠØąŲ†Ø§ اŲˆØą اØŗØĒØšŲ…اŲ„ ÚŠŲˆ Ų…ØšŲ…ŲˆŲ„ ŲžØą Ų„اŲ†Û’ ÚŠÛ’ بؚد ŲˆØ§ŲžØŗ اØŗÚŠÛŒŲ„ ÚŠØąŲ†Ø§ + +## Related terms + +* [اŲŲ‚ÛŒ بڑڞاؤ](/horizontal-scaling/) +* [ØšŲ…ŲˆØ¯ÛŒ بڑڞاؤ](/vertical-scaling/) diff --git a/content/ur/cloud-computing.md b/content/ur/cloud-computing.md new file mode 100644 index 0000000000..79f0a9381f --- /dev/null +++ b/content/ur/cloud-computing.md @@ -0,0 +1,19 @@ +--- +title: ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ (Cloud Computing) +status: Completed +category: ØĒØĩŲˆØą +tags: ["بŲ†ÛŒØ§Ø¯ÛŒ ڈڞاŲ†Ú†Û", "بŲ†ÛŒØ§Ø¯ÛŒ", ""] +--- + +## یہ ڊیا ہے + +ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ایڊ Ų…اڈŲ„ ہے ØŦŲˆ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ŲˆØŗاØĻŲ„ ØŦیØŗے Øŗی ŲžÛŒ یŲˆØŒ Ų†ÛŒŲš ŲˆØąÚŠØŒ اŲˆØą ڈØŗÚŠ ÚŠÛŒ ØĩŲ„احیØĒیÚē اŲ†ŲšØąŲ†ÛŒŲš ÚŠÛ’ Ø°ØąÛŒØšÛ’ Ø¨ØąØ§ÛŲ ØąØ§ØŗØĒ Ø¯ØąØŽŲˆØ§ØŗØĒ ŲžØą ŲØąØ§ÛŲ… ÚŠØąØĒا ہے۔ ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ØĩØ§ØąŲÛŒŲ† ÚŠŲˆ دŲˆØą اŲˆØą ŲØ§ØĩŲ„Û’ ÚŠÛ’ Ų…Ų‚اŲ…اØĒ ŲžØą ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ŲžØ§ŲˆØą ØĒÚŠ ØąØŗاØĻی اŲˆØą اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Û’ ÚŠÛŒ ØĩŲ„احیØĒ ŲØąØ§ÛŲ… ÚŠØąØĒا ہے۔ ÚŠŲ„اؤڈ ÚŠÛ’ ØŗہŲˆŲ„ØĒ ÚŠØ§Øą ØŦیØŗے اے ڈبŲ„ÛŒŲˆ ایØŗ، ØŦی Øŗی ŲžÛŒØŒ Ø§ÛŒØ˛ÛŒŲˆØąØŒ ڈیØŦیŲšŲ„ اŲˆØ´Ų† اŲˆØą Ø¯ÛŒÚ¯Øą اداØĻیگیŲˆÚē ÚŠÛ’ Ų„ØĻے ØĒŲ…اŲ… ØŦØēØąØ§ŲÛŒØ§ØĻی Ų…Ų‚اŲ…اØĒ Ų…ÛŒÚē ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ŲˆØŗاØĻŲ„ ØĒÚŠ ØąØŗاØĻی ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒے ہیÚē۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē ØŦب ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ŲžØ§ŲˆØą ڊا اØŗØĒØšŲ…اŲ„ ÚŠŲˆ بڑڞاŲ†Û’ ÚŠÛŒ ÚŠŲˆØ´Ø´ ÚŠØąØĒی ہیÚē ØĒŲˆ ؚاŲ… ØˇŲˆØą ŲžØą دŲˆ بڑے Ų…ØŗاØĻŲ„ ØŗاŲ…Ų†Û’ ØĸØĒے ہیÚē۔ ŲˆÛ یا ØĒŲˆ اŲžŲ†Û’ ŲÛŒØ˛ÛŒÚŠŲ„ ØŗØąŲˆØą اŲˆØą Ų†ÛŒŲš ŲˆØąÚŠ ÚŠÛŒ ŲØąØ§ÛŲ…ÛŒ ÚŠÛ’ Ų„ØĻے ØŗہŲˆŲ„یاØĒ حاØĩŲ„ ÚŠØąØĒے ہیÚē، اŲ†ÛÛŒÚē Ø­Ų…ایØĒ دیØĒے ہیÚē، ÚˆÛŒØ˛Ø§ØĻŲ† ÚŠØąØĒے ہیÚē، اŲˆØą اŲ† ÚŠÛŒ اداØĻیگی ÚŠØąØĒے ہیÚē یا ŲˆÛ اŲ† ØŗہŲˆŲ„یاØĒ ÚŠŲˆ بڑڞاØĒے ہیÚē اŲˆØą اŲ†ÛÛŒÚē Ų…Ø­ŲŲˆØ¸ ØąÚŠÚžØĒے ہیÚē۔ ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ÚŠØŗی دŲˆØŗØąÛŒ ØĒŲ†Ø¸ÛŒŲ… ÚŠŲˆ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ÚŠÛŒ ØļØąŲˆØąÛŒØ§ØĒ ڊا ایڊ Ø­Øĩہ ØĸؤŲšØŗŲˆØąØŗ ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒا ہے۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ÚŠŲ„اؤڈ ÚŠÛ’ ØŗہŲˆŲ„ØĒ ÚŠØ§ØąØŒ ØĒŲ†Ø¸ÛŒŲ…ŲˆÚē ÚŠŲˆ اŲ† ÚŠÛŒ Ø¯ØąØŽŲˆØ§ØŗØĒ ŲžØą ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ØąÛŒØŗŲˆØąØŗØ˛ ÚŠØąØ§ÛŒÛ ŲžØą حاØĩŲ„ ÚŠØąŲ†Û’ اŲˆØą اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Û’ ÚŠÛŒ ØŗہŲˆŲ„ØĒ ŲØąØ§ÛŲ… ÚŠØąØĒے ہیÚē۔ اØŗ ÚŠÛŒ ŲˆØŦہ Øŗے دŲˆ بڑے اŲ†Ų‚Ų„اب ŲžÛŒØ¯Ø§ ہŲˆØĒے ہیÚē۔ ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē اŲžŲ†Û’ ŲžØąŲˆÚˆÚŠŲš یا ؎دŲ…اØĒ ŲžØą ØĒŲˆØŦہ Ų…ØąÚŠŲˆØ˛ ÚŠØąØŗÚŠØĒی ہیÚē بØŦاØĻے اØŗ باØĒ ÚŠÛ’ ڊہ ŲˆÛ Ų†ØĻے ŲÛŒØ˛ÛŒÚŠŲ„ اØŗاØŗے ÚŠÛ’ Ų„ØĻے اŲ†ØĒØ¸Ø§ØąÚŠØąÛŒÚē، اØŗ ÚŠÛŒ Ų…Ų†ØĩŲˆØ¨Û بŲ†Ø¯ÛŒ ÚŠØąÛŒÚē اŲˆØąØ§Øŗ ÚŠÛ’ Ø§ØŽØąØ§ØŦاØĒ Ø¨ØąØ¯Ø§Ø´ØĒ ÚŠØąÛŒÚē۔ ŲˆÛ بØŗ ØĸØŗاŲ†ÛŒ Øŗے ØļØąŲˆØąØĒ ÚŠÛ’ Ų…ØˇØ§Ø¨Ų‚ اŲ† ÚŠÛŒ Ø¯ØąØŽŲˆØ§ØŗØĒ ŲžØą [Ų…Ų‚یاØŗ](/scalability/) ÚŠØąØŗÚŠØĒے ہیÚē۔ +ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ Øŗے ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē اØĒŲ†ÛŒ Ø˛ÛŒØ§Ø¯Û یا ÚŠŲ… Ø˛ÛŒØą Øŗا؎ØĒ ا؎ØĒÛŒØ§Øą ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒی ہے ØŦØĒŲ†ÛŒ اŲ†ÛÛŒÚē ØļØąŲˆØąØĒ ہŲˆÛ” diff --git a/content/ur/container.md b/content/ur/container.md new file mode 100644 index 0000000000..e3837eba97 --- /dev/null +++ b/content/ur/container.md @@ -0,0 +1,21 @@ +--- +title: ÚŠŲ†ŲšÛŒŲ†ØąØ˛(Containers) +status: Completed +category: ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +tags: ["ایŲžŲ„یڊیشŲ†", "بŲ†ÛŒØ§Ø¯ÛŒ", ""] +--- + +## یہ ڊیا ہے + +ÚŠŲ†ŲšÛŒŲ†Øą ایڊ چŲ„Ų†Û’ ŲˆØ§Ų„ا ØšŲ…Ų„ ہے ØŦØŗ Ų…ÛŒÚē ŲˆØŗاØĻŲ„ اŲˆØą ØĩŲ„احیØĒ ÚŠÛ’ ÚŠŲ†ŲšØąŲˆŲ„ ڊا اŲ†ØĒظاŲ… ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠÛ’ ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ÚŠÛ’ Ø°ØąÛŒØšÛ’ ہŲˆØĒا ہے۔ ÚŠŲ†ŲšÛŒŲ†Øą ÚŠÛ’ ØšŲ…Ų„ ÚŠÛ’ Ų„یے دØŗØĒیاب ŲØ§ØĻŲ„ŲˆÚē ÚŠŲˆ ÚŠŲ†ŲšÛŒŲ†Øą ÚŠÛŒ ØĒØĩŲˆÛŒØą ÚŠÛ’ ØˇŲˆØą ŲžØą ŲžÛŒÚŠ ڊیا ØŦاØĒا ہے۔ ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ایڊ ہی Ų…Ø´ÛŒŲ† ŲžØą ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž چŲ„ØĒے ہیÚē، Ų„یڊŲ† ؚاŲ… ØˇŲˆØą ŲžØą ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ØšŲ„یحدہ ÚŠŲ†ŲšÛŒŲ†Øą ÚŠÛ’ ØšŲ…Ų„ ÚŠŲˆ ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž باØĒ چیØĒ ÚŠØąŲ†Û’ Øŗے ØąŲˆÚŠØĒا ہے۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ÚŠÛŒ دØŗØĒیابی Øŗے ŲžÛŲ„Û’ØŒ ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ چŲ„اŲ†Û’ ÚŠÛ’ Ų„یے اŲ„Ú¯ Ų…Ø´ÛŒŲ†ÛŒÚē ØļØąŲˆØąÛŒ ØĒÚžÛŒÚē۔ ÛØą Ų…Ø´ÛŒŲ† ÚŠŲˆ اŲžŲ†Ø§ ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… Ø¯ØąÚŠØ§Øą ہŲˆØĒا ہے، ØŦŲˆ Øŗی ŲžÛŒ یŲˆØŒ Ų…ÛŒŲ…ŲˆØąÛŒ اŲˆØą ڈØŗÚŠ ÚŠÛŒ ØŦگہ Ų„ÛŒØĒا ہے، یہ Øŗب کچھ اŲ†ŲØąØ§Ø¯ÛŒ ایŲžŲ„یڊیشŲ† ÚŠÛ’ ڊاŲ… ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے اہŲ… ہŲˆØĒا ہے۔ Ų…Ø˛ÛŒØ¯ Ø¨ØąØĸÚē، ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ÚŠÛŒ دیڊڞ بڞاŲ„ØŒ اŲž Ú¯ØąÛŒÚˆØŒ اŲˆØą اØŗŲšØ§ØąŲš اŲž Ų…Ø­Ų†ØĒ ڊا ایڊ اŲˆØą اہŲ… Ø°ØąÛŒØšÛ ہے۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ایڊ ہی ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… اŲˆØą اØŗ Ų…Ø´ÛŒŲ† ÚŠÛ’ ŲˆØŗاØĻŲ„ ÚŠŲˆ باŲ†ŲšØĒے ہیÚē، ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ÚŠÛ’ ŲˆØŗاØĻŲ„ ÚŠŲˆ اŲˆŲˆØą ہیڈ Øŗے بچاØĒے ہیÚē اŲˆØą ØŦØŗŲ…اŲ†ÛŒ Ų…Ø´ÛŒŲ† ڊا Ų…ŲˆØĢØą اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē۔ یہ ØĩŲ„احیØĒ ØĩØąŲ اØŗ Ų„یے Ų…Ų…ÚŠŲ† ہے ÚŠÛŒŲˆŲ†ÚŠÛ ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ؚاŲ… ØˇŲˆØą ŲžØą ایڊ دŲˆØŗØąÛ’ ÚŠÛ’ ØŗاØĒÚž باØĒ چیØĒ Øŗے Ų…Ø­ØąŲˆŲ… ہŲˆØĒے ہیÚē۔ یہ ایڊ ہی ŲØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† ŲžØą ÚŠØĻی اŲˆØą ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ ÚŠŲˆ چŲ„اŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒا ہے۔ + +Ų…Ú¯Øą ŲžØ§Ø¨Ų†Ø¯ÛŒØ§Úē بڞی ہیÚē۔ چŲˆŲ†ÚŠÛ ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ایڊ ہی ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē، اØŗ Ų„یے ŲžØąŲˆØŗیØŗØ˛ ÚŠŲˆ Ø¯ÛŒÚ¯Øą ا؎ØĒÛŒØ§ØąØ§ØĒ ÚŠÛ’ Ų…Ų‚ابŲ„ہ Ų…ÛŒÚē ÚŠŲ… Ų…Ø­ŲŲˆØ¸ ØŗŲ…ØŦڞا ØŦا ØŗÚŠØĒا ہے۔ ÚŠŲ†ŲšÛŒŲ†ØąØ˛ ÚŠŲˆ Ų…Ø´ØĒØąÚŠÛ ŲˆØŗاØĻŲ„ ŲžØą بڞی حد بŲ†Ø¯ÛŒ ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØĒی ہے۔ ŲˆØŗاØĻŲ„ ÚŠÛŒ ØļŲ…اŲ†ØĒ دیŲ†Û’ ÚŠÛ’ Ų„یے، Ų†Ú¯ØąØ§Ų† ÚŠŲˆ Ų…ÛŒŲ…ŲˆØąÛŒ اŲˆØą Øŗی ŲžÛŒ یŲˆ ÚŠÛ’ اØŗØĒØšŲ…اŲ„ ÚŠŲˆ Ų…حدŲˆØ¯ ÚŠØąŲ†Ø§ چاہیے ØĒاڊہ Ø¯ÛŒÚ¯Øą ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ ØŽØąØ§Ø¨ ÚŠØ§ØąÚŠØąØ¯Ú¯ÛŒ ڊا Ų…Ø¸Ø§ÛØąÛ Ų†Û ÚŠØąÛŒÚē۔ + diff --git a/content/ur/containerization.md b/content/ur/containerization.md new file mode 100644 index 0000000000..71fc82c1e2 --- /dev/null +++ b/content/ur/containerization.md @@ -0,0 +1,20 @@ +--- +title: ÚŠŲ†ŲšÛŒŲ†ØąØ§ØĻØ˛ÛŒØ´Ų†(Containerization) +status: Completed +category: ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +tags: ["ایŲžŲ„یڊیشŲ†", "", ""] +--- + +## یہ ڊیا ہے + +ÚŠŲ†ŲšÛŒŲ†ØąØ§ØĻØ˛ÛŒØ´Ų† ÚŠØŗی ایŲžŲ„یڊیشŲ† اŲˆØą اØŗ ÚŠÛ’ Ų…ابیŲ† ØĒØšŲ„Ų‚اØĒ ÚŠŲˆ ایڊ ÚŠŲ†ŲšÛŒŲ†Øą ØĒØĩŲˆÛŒØą. + Ų…ÛŒÚē بŲ†Ø¯ ÚŠØąŲ†Û’ ڊا ØšŲ…Ų„ ہے۔ ÚŠŲ†ŲšÛŒŲ†Øą بŲ†Ø§Ų†Û’ ڊا ØšŲ…Ų„ØŒ [ اŲˆŲžŲ† ÚŠŲ†ŲšÛŒŲ†Øą اŲ†ÛŒØ´ÛŒØĻŲšŲˆ](https://opencontainers.org) (OCI) ÚŠÛŒ Ų…ØšÛŒØ§Øą ÚŠÛ’ ŲžØ§Ø¨Ų†Ø¯ ہŲˆŲ†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ ØąÚŠÚžØĒا ہے۔ ØŦب ØĒÚŠ Ų†ØĒاØĻØŦ ایڊ ایØŗی ÚŠŲ†ŲšÛŒŲ†Øą ØĒØĩŲˆÛŒØą ہŲˆ ØŦŲˆ اØŗ Ų…ØšÛŒØ§Øą ÚŠÛ’ ŲžØ§Ø¨Ų†Ø¯ ہŲˆØŒØĒŲˆ ÚŠØŗی Ų…ØŽØĩŲˆØĩ ÚŠŲ†ŲšÛŒŲ†ØąØ§ØĻØ˛ÛŒØ´Ų† ŲšŲˆŲ„ ÚŠŲˆ اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Ø§ اہŲ… Ų†ÛÛŒÚē ہŲˆØĒا۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ØŦب ØĒÚŠ ÚŠŲ†ŲšÛŒŲ†Øą ڊا اØŗØĒØšŲ…اŲ„ ؚاŲ… Ų†ÛÛŒÚē ہŲˆØ§ ØĒڞا، ØĒŲ†Ø¸ÛŒŲ…ÛŒÚē ایڊ [ بŲ”ÛŒØą Ų…ÛŒŲšŲ„ Ų…Ø´ÛŒŲ†](/bare-metal-machine/). + ŲžØą ÚŠØĻی ایŲžŲ„یڊیشŲ†Ø˛ ÚŠŲˆ ØĸØąÚˆØą دیŲ†Û’ ÚŠÛ’ Ų„یے ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ† (VMs) اØŗØĒØšŲ…اŲ„ ÚŠØąØĒی ØĒÚžÛŒÚē۔ ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ† ÚŠŲ†ŲšÛŒŲ†Øą Øŗے بہØĒ بڑی ہŲˆØĒی ہیÚē اŲˆØą اŲ†ÛÛŒÚē چŲ„اŲ†Û’ ÚŠÛ’ Ų„یے ایڊ ہاØĻیŲžØąŲˆØ§ØĻØ˛Øą ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØĒی ہے۔ اŲ† بڑی ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ† ŲšÛŒŲ…ŲžŲ„ÛŒŲšØŗ ÚŠÛŒ اØŗŲšŲˆØąÛŒØŦ، بیڊ اŲž اŲˆØą Ų…Ų†ØĒŲ‚Ų„ÛŒ ÚŠÛŒ ŲˆØŦہ Øŗے، اŲ† ÚŠÛ’ ØĒÛŒØ§Øą ÚŠØąŲ†Û’ ڊا ØšŲ…Ų„ بڞی Ø¯ÛŒØą ÚŠØą دیØĒا ہے۔ ØšŲ„اŲˆÛ Ø§Ø˛ÛŒÚē، ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†Ø˛ ÚŠÛŒ ØĒØąØĒیب Ų…ÛŒÚē ØĒبدیŲ„ÛŒ ØĸŲ†Û’ ڊا ØŽØˇØąÛ بڞی ØąÛØĒا ہے ØŦŲˆ [ØēÛŒØą Ų‚ابŲ„ ØĒØēÛŒÛŒØą](/immutable-infrastructure/) ÚŠÛ’ اØĩŲˆŲ„ ÚŠÛ’ ØŽŲ„اŲ ہŲˆØĒا ہے۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ÚŠŲ†ŲšÛŒŲ†Øą اŲ…ÛŒØŦØ˛ ہŲ„ÚŠÛ’ ہŲˆØĒے ہیÚē (ØąŲˆØ§ÛŒØĒی ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†Ø˛ ÚŠÛŒ ØˇØąØ­ Ų†ÛÛŒÚē) اŲˆØą ÚŠŲ†ŲšÛŒŲ†ØąØ§ØĻØ˛ÛŒØ´Ų† ÚŠÛŒ ŲžØąŲˆØŗیØŗ ÚŠÛ’ Ų„ØĻے ایڊ ŲØ§ØĻŲ„ ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØĒی ہے ØŦØŗ Ų…ÛŒÚē Ų…ØĒØšŲ„Ų‚ہ ŲˆØ§Ø¨ØŗØĒگیŲˆÚē ÚŠÛŒ ŲÛØąØŗØĒ شاŲ…Ų„ ہŲˆØĒی ہے۔ یہ ŲØ§ØĻŲ„ ŲˆØąÚ˜Ų† ÚŠŲ†ŲšØąŲˆŲ„ ÚŠØąØ¯ÛŒ ØŦا ØŗÚŠØĒی ہے اŲˆØą بŲ„Úˆ ŲžØąŲˆØŗیØŗ ØŽŲˆØ¯ÚŠØ§Øą بŲ†Ø§ÛŒØ§ ØŦا ØŗÚŠØĒا ہے، ØŦØŗ Øŗے ایڊ ØĒŲ†Ø¸ÛŒŲ… دŲˆØŗØąÛ’ ØĒØąØŦیحاØĒ ŲžØą ØĒŲˆØŦہ دیŲ†Û’ ÚŠÛ’ Ų‚ابŲ„ ہŲˆØĒی ہے ØŦبڊہ ØŽŲˆØ¯ÚŠØ§Øą ŲžØąŲˆØŗیØŗØ˛ ÚŠŲ†ŲšÛŒŲ†Øą ÚŠÛŒ ØĒØšŲ…ÛŒØą ڊا ؎یاŲ„ ØąÚŠÚžØĒے ہیÚē۔ ÚŠŲ†ŲšÛŒŲ†Øą ایڊ Ų…Ų†ŲØąØ¯ Ø´Ų†Ø§ØŽØĒ ÚŠÛ’ Ø°ØąÛŒØšÛ’ Ų…Ø­ŲŲˆØ¸ ہŲˆØĒا ہے ØŦŲˆ اØŗ ÚŠÛ’ Ų…ØĒØšŲ„Ų‚ Ų…ŲˆØ§Ø¯ اŲˆØą ØĒØąØĒیب Øŗے Ų…Ų†ØŗŲ„ÚŠ ہŲˆØĒا ہے۔ ØŦیØŗے ہی ÚŠŲ†ŲšÛŒŲ†ØąØ˛ شیڈŲˆŲ„ ہŲˆØĒے ہیÚē، ŲˆÛ ہŲ…یشہ اŲžŲ†ÛŒ ابØĒداØĻی حاŲ„ØĒ ŲžØą ØąÛŒ ØŗیŲš ہŲˆ ØŦاØĒے ہیÚē ØŦØŗ Øŗے اŲ† ÚŠÛŒ ØĒØąØĒیب Ų…ÛŒÚē ØĒبدیŲ„ÛŒ ØĸŲ†Û’ ڊا ØŽØˇØąÛ بڞی ØŽØĒŲ… ہŲˆ ØŦاØĒا ہے۔ diff --git a/content/ur/contribute/_index.md b/content/ur/contribute/_index.md new file mode 100644 index 0000000000..24bc163fee --- /dev/null +++ b/content/ur/contribute/_index.md @@ -0,0 +1,150 @@ +--- +title: Ø´ØąØ§ÚŠØĒ ÚŠÛŒØŗے ÚŠØąÛŒÚē +toc_hide: true +status: Feedback Appreciated +menu: + main: + weight: 10 +--- + +ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ Ų„ØēØĒ ڊا Ų…ŲˆØ§Ø¯ [اØŗ GitHub ØąÛŒŲžŲˆ](https://github.com/cncf/glossary) +Ų…ÛŒÚē Ų…Ø­ŲŲˆØ¸ ہے ØŦہاÚē ØĸŲž ÚŠŲˆ [Ų…ØŗاØĻŲ„](https://github.com/cncf/glossary/issues), [PRs](https://github.com/cncf/glossary/pulls), اŲˆØą +[باØĒ چیØĒ ÚŠÛŒ ŲÛØąØŗØĒ Ų…Ų„Û’ گی۔](https://github.com/cncf/glossary/discussions) + +ØĸŲž ÚŠÛ’ ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ÚŠÛ’ Ú†Ø§Øą ØˇØąÛŒŲ‚Û’ ہیÚē: + +1) [Ų…ŲˆØŦŲˆØ¯Û Ų…ØŗØĻŲ„Û’ ŲžØą ڊاŲ… ÚŠØąÛŒÚē](#work-on-an-existing-issue) +2) [Ų†ØĻی Ø´ØąØ§ØĻØˇ ØĒØŦŲˆÛŒØ˛ ÚŠØąÛŒÚē](#propose-new-terms) +3) [Ų…ŲˆØŦŲˆØ¯Û ÚŠŲˆ اŲž ڈیŲš ÚŠØąÛŒÚē](#update-an-existing-term) +4) [Ų„ØēØĒ ڊا ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛŒÚē](#help-translate-the-glossary) + +## Ų„ØēØĒ ÚŠÛŒ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒÚē شاŲ…Ų„ ہŲˆÚē! {#join-the-glossary-community} + +Ø§Ú¯Øą ØĸŲž باŲ‚اؚدگی Øŗے Ø­Øĩہ ڈاŲ„Ų†Ø§ چاہØĒے ہیÚē ØĒŲˆ ہŲ…Ø§ØąÛŒ Ų…اہاŲ†Û Ų„ØēØĒ ŲˆØąÚŠŲ†Ú¯ Ú¯ØąŲˆŲž Ų…ÛŒŲšŲ†Ú¯Ø˛ Ų…ÛŒÚē شاŲ…Ų„ ہŲˆŲ†Û’ ŲžØą ØēŲˆØą ÚŠØąÛŒÚē۔ ØĸŲž Ų…ÛŒŲšŲ†Ú¯ ÚŠÛŒ ØĒŲØĩیŲ„اØĒ [CNCF ÚŠÛŒŲ„Ų†ÚˆØą](https://www.cncf.io/calendar/) Ų…ÛŒÚē ØĒŲ„اش ÚŠØą ØŗÚŠØĒے ہیÚē۔ +ØĸŲž CNCF Slack ŲžØą ہŲ…Ø§ØąÛ’ [glossary#](https://cloud-native.slack.com/archives/C02TX20MQBB) چیŲ†Ų„ Ų…ÛŒÚē دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē اŲˆØą ØŗاØĒÚžÛŒ Ø´ØąØ§ÚŠØĒ Ø¯Ø§ØąŲˆÚē Øŗے بڞی ØąØ§Ø¨ØˇÛ Ų‚اØĻŲ… ÚŠØą ØŗÚŠØĒے ہیÚē — ہŲ…ÛŒÚē ØĸŲž Øŗے Ų…Ų„ ÚŠØą ØŽŲˆØ´ÛŒ ہŲˆÚ¯ÛŒ! + + +## Ų…ŲˆØŦŲˆØ¯Û Ų…ØŗØĻŲ„Û’ ŲžØą ڊاŲ… ÚŠØąÛŒÚē {#work-on-an-existing-issue} + +[Glossary GitHub ØąÛŒŲžŲˆ Ų…ØŗاØĻŲ„](https://github.com/cncf/glossary/issues) +ŲžØą ØŦاØĻیÚē۔ ŲˆÛØ§Úē ØĸŲž ÚŠŲˆ ØĒŲ…اŲ… Ų…ØŗاØĻŲ„ ÚŠÛŒ ŲÛØąØŗØĒ Ų†Ø¸Øą ØĸØĻے گی۔ ØĸŲž Ų„یبŲ„ ÚŠÛ’ Ø°ØąÛŒØšÛ ŲŲ„ŲšØą ÚŠØąØŗÚŠØĒے ہیÚē (ØŦیØŗے اŲ†Ú¯ØąÛŒØ˛ÛŒ Ø˛Ø¨Ø§Ų†ØŒ Ų…دد ÚŠÛŒ ØļØąŲˆØąØĒ، اچڞا ŲžÛŲ„ا Ø´Ų…Ø§ØąÛ)۔ Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ ØĸŲž ÚŠŲˆ اØŗ Ų…ÛŒÚē Øŗے کچھ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ایڊ GitHub اڊاؤŲ†Ųš ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆÚ¯ÛŒÛ” + +![ایشŲˆ اŲˆØą Ų„یبŲ„Ø˛](/images/how-to/issue-and-labels.png) + +یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē ڊہ ØĸŲž ØŦØŗ اØĩØˇŲ„اح Ų…ÛŒÚē دŲ„Ú†ØŗŲžÛŒ ØąÚŠÚžØĒے ہیÚē ŲˆÛ ŲžÛŲ„Û’ Øŗے ÚŠØŗی ÚŠŲˆ ØĒŲŲˆÛŒØļ Ų†ÛÛŒÚē ÚŠÛŒ Ú¯ØĻی ہے۔ یہاÚē ØĸŲž دیڊڞ ØŗÚŠØĒے ہیÚē ڊہ ŲžÛŲ„ÛŒ ØĒیŲ† Ø´ØąØ§ØĻØˇ دØŗØĒیاب ہیÚē ØŦبڊہ اگŲ„ÛŒ اØĩØˇŲ„اح ŲžÛŲ„Û’ ہی ØĒŲŲˆÛŒØļ ÚŠÛŒ ØŦا Ú†ÚŠÛŒ ہے۔ + + +![ایڊ اØĩØˇŲ„اح ØĒŲŲˆÛŒØļ ÚŠØąŲ†Ø§](/images/how-to/howto-04.png) + +ایڊ Ø¨Ø§Øą ØŦب ØĸŲž ÚŠŲˆ ÚŠŲˆØĻی ایØŗی اØĩØˇŲ„اح Ų…Ų„ ØŦاØĻے ØŦØŗ ŲžØą ØĸŲž ڊاŲ… ÚŠØąŲ†Ø§ چاہØĒے ہیÚē، ØĒŲˆ Ø´Ų…Ø§ØąÛ Ų…ÛŒÚē ڊہیÚē۔ اØŗ ŲžØą ÚŠŲ„ÚŠ ÚŠØąÛŒÚē اŲˆØą ØĒبØĩØąÛ شاŲ…Ų„ ÚŠØąÛŒÚē۔ + +![ÚŠØŗی Ų…ØŗØĻŲ„Û’ ڊا دؚŲˆÛŒ ÚŠØąŲ†Ø§](/images/how-to/claiming-an-issue.png) + +Ų…Ø˛ÛŒØ¯ Ø¨ØąØĸÚē، Ø¨ØąØ§Û ÚŠØąŲ… CNCF Slack ŲžØą [glossary#](https://cloud-native.slack.com/archives/C02TX20MQBB) چیŲ†Ų„ Ų…ÛŒÚē بڞی شاŲ…Ų„ ہŲˆÚē اŲˆØą دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠŲˆ بØĒاØĻیÚē ڊہ ØĸŲž Ų†Û’ ایڊ Ų†ØĻی اØĩØˇŲ„اح ÚŠÛ’ Ų„یے ایڊ Ų…ØŗØĻŲ„ہ اŲšÚžØ§ÛŒØ§ ہے + (Ų…ØĢاŲ„ÛŒ ØˇŲˆØą ŲžØą Catherine Paganini، @jmo، @Seokho Son، @Jihoon Seo@ اŲˆØą/ یا iamnoah@ اØŗ باØĒ ڊا یŲ‚ÛŒŲ† ÚŠØąŲ†Û’ ÚŠÛ’ Ų„ØĻے ڊہ ŲˆÛ اØŗے یاد Ų†ÛÛŒÚē ÚŠØąØĒے ہیÚē)۔ Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ ØĸŲž ایڊ ŲˆŲ‚ØĒ Ų…ÛŒÚē ØĩØąŲ ایڊ ŲšØąŲ… ڊا دؚŲˆÛŒ ÚŠØą ØŗÚŠØĒے ہیÚē۔ Ø§Ú¯Øą ØĸŲž Ų…ØĒؚدد Ø´ØąØ§ØĻØˇ ŲžØą ڊاŲ… ÚŠØąŲ†Ø§ چاہØĒے ہیÚē، ØĒŲˆ Ø¨ØąØ§Û ÚŠØąŲ… اگŲ„ÛŒ Ø´ØąØ§ØĻØˇ ڊا دؚŲˆÛŒ ÚŠØąŲ†Û’ Øŗے ŲžÛŲ„Û’ ایڊ ÚŠŲˆ ØŽØĒŲ… ÚŠØąÛŒÚē۔ + + +ایڊ Ø¨Ø§Øą ØŦب ŲˆÛ ØĸŲž ÚŠŲˆ ØĒŲŲˆÛŒØļ ÚŠØą دیÚē ØĒŲˆ ØĸŲž اØŗ ŲžØą ڊاŲ… Ø´ØąŲˆØš ÚŠØą ØŗÚŠØĒے ہیÚē۔ اگŲ„Û’ Ų…ØąØ§Ø­Ų„ ÚŠÛ’ Ų„یے، Ø¨ØąØ§Û ÚŠØąŲ… [ایڊ Ų†ØĻی اØĩØˇŲ„اح ØŦŲ…Øš ÚŠØąŲ†Û’ (ŲžÛŒ ØĸØą بŲ†Ø§Ų†Û’)](#submitting-a-new-term) ÚŠÛ’ Ų„یے ØŗیڊشŲ† Øŗے ØąØŦŲˆØš ÚŠØąÛŒÚē۔ + +## Ų†ØĻی Ø´ØąØ§ØĻØˇ ØĒØŦŲˆÛŒØ˛ ÚŠØąÛŒÚē {#propose-new-terms} + +ØĸŲž دŲˆØŗØąŲˆÚē ÚŠÛ’ Ų„یے ایڊ Ų†ØĻی اØĩØˇŲ„اح ØĒØŦŲˆÛŒØ˛ ÚŠØą ØŗÚŠØĒے ہیÚē ØŦØŗ ŲžØą ڊاŲ… ÚŠØąÛŒÚē یا ØŽŲˆØ¯ ایڊ Ų†ØĻی ØĒØšØąÛŒŲ ØĒØŽŲ„ÛŒŲ‚ ÚŠØąÛŒÚē۔ ÚŠØŗی بڞی ØˇØąØ­ØŒ ØĸŲž ایڊ Ų…ØŗØĻŲ„ہ ŲžÛŒØ¯Ø§ ÚŠØąÚŠÛ’ Ø´ØąŲˆØš ÚŠØąÛŒÚē گے۔ Ø¨ØąØ§Û ÚŠØąŲ… Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ Ø´ØąØ§ØĻØˇ [CNCF ÚŠÛŒ ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ ØĒØšØąÛŒŲ](https://github.com/cncf/toc/blob/main/DEFINITION.md) + ÚŠÛ’ Ų…ØˇØ§Ø¨Ų‚ ہŲˆŲ†ÛŒ چاہØĻیÚē۔ ØĩØąŲ Ų…ØŗØĒØĢŲ†ÛŒØ§ØĒ ÚŠŲ„اŲˆÚˆ ÚŠÛ’ Ų…Ų‚اŲ…ÛŒ ØĒØĩŲˆØąØ§ØĒ ÚŠŲˆ ØŗŲ…ØŦÚžŲ†Û’ ÚŠÛ’ Ų„یے Ø¯ØąÚŠØ§Øą بŲ†ÛŒØ§Ø¯ÛŒ اØĩØˇŲ„احاØĒ ہیÚē۔ + +ذیŲ„ Ų…ÛŒÚē اŲ† Ų„ŲˆÚ¯ŲˆÚē ÚŠÛ’ Ų„یے Ų…ØąØ­Ų„ہ ŲˆØ§Øą گاØĻیڈ ہے ØŦŲˆ ابڞی ØĒÚŠ GitHub Øŗے ŲˆØ§Ų‚Ų Ų†ÛÛŒÚē ہیÚē۔ Ø§Ú¯Øą ØĸŲž GitHub Pro ہیÚē، ØĒŲˆ Ø¨ØąØ§Û ÚŠØąŲ… اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§Ų†Û’ ÚŠÛ’ Ų„یے ŲŲˆØąÛŒ Ų†Ø¸Øą ڈاŲ„ÛŒÚē ڊہ ØĸŲž ہŲ…Ø§ØąÛ’ ایشŲˆ ŲšÛŒŲ…ŲžŲ„ÛŒŲšØŗ، Ų…Ų†Ø§Øŗب Ų†Ø§Ų… دیŲ†Û’ ÚŠÛ’ ÚŠŲ†ŲˆŲ†Ø´Ų†Ø˛ ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē، Slack ŲžØą PR ڊا دؚŲˆÛŒŲ° ÚŠØąØĒے ہیÚē (ŲˆØąŲ†Û ہŲ… اØŗ Øŗے Ų…Ø­ØąŲˆŲ… ØąÛ ØŗÚŠØĒے ہیÚē)، اŲˆØą ŲØ§ØĻŲ„ ŲšÛŒŲ…ŲžŲ„ÛŒŲš ڊہاÚē Øŗے ØĒŲ„اش ÚŠØąŲ†Ø§ ہے۔ اŲˆØą Ø¨ØąØ§Û ÚŠØąŲ… Ø´ØąŲˆØš ÚŠØąŲ†Û’ Øŗے ŲžÛŲ„Û’ [اØŗŲšØ§ØĻŲ„ گاØĻیڈ](/style-guide/) ÚŠŲˆ ŲžÚ‘ÚžŲ†Ø§ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē — Ø´ÚŠØąÛŒÛ! + +### ایڊ Ų…ØŗØĻŲ„ہ ŲžÛŒØ¯Ø§ ÚŠØąŲ†Ø§ {#creating-an-issue} + +[Ų„ØēØĒ GitHub ØąÛŒŲžŲˆ](https://github.com/cncf/glossary/issues) Ų…ØŗاØĻŲ„ ŲžØą ØŦاØĻیÚē اŲˆØą "Ų†ÛŒØ§ Ø´Ų…Ø§ØąÛ" ŲžØą ÚŠŲ„ÚŠ ÚŠØąÛŒÚē۔ + +![Ų…ØŗاØĻŲ„](/images/how-to/howto-01.png) + +ØĸŲž ÚŠŲˆ Ų…ØĒؚدد ŲšÛŒŲ…ŲžŲ„ÛŒŲšØŗ Ų†Ø¸Øą ØĸØĻیÚē گے۔ اŲ†Ú¯ØąÛŒØ˛ÛŒ Ų…ÛŒÚē ایڊ Ų†ØĻی اØĩØˇŲ„اح ØĒØŦŲˆÛŒØ˛ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے، "ایڊ Ų†ØĻی اØĩØˇŲ„اح (اŲ†Ú¯ØąÛŒØ˛ÛŒ) شاŲ…Ų„ ÚŠØąŲ†Û’ ÚŠÛŒ Ø¯ØąØŽŲˆØ§ØŗØĒ ÚŠØąÛŒÚē" ÚŠŲˆ Ų…Ų†ØĒ؎ب ÚŠØąÛŒÚē۔ + +![ŲšÛŒŲ…ŲžŲ„ÛŒŲšØŗ](/images/how-to/english-issue-template.jpg) + +ŲˆÛ Ų„ŲØ¸ شاŲ…Ų„ ÚŠØąÛŒÚē ØŦŲˆ ØĸŲž ØĒØŦŲˆÛŒØ˛ ÚŠØą ØąÛÛ’ ہیÚē، ذیŲ„ Ų…ÛŒÚē دŲˆ ØŗŲˆØ§Ų„ŲˆÚē ÚŠÛ’ ØŦŲˆØ§Ø¨ دیÚē، چیڊ باڊØŗØ˛ ÚŠŲˆ چیڊ ÚŠØąÛŒÚē، اŲˆØą "Ų†ÛŒØ§ Ø´Ų…Ø§ØąÛ ØŦŲ…Øš ÚŠØąŲˆØ§ØĻیÚē" ÚŠŲˆ دباØĻیÚē۔ Ø§Ú¯Øą ØĸŲž ØĩØąŲ ایڊ Ų†ØĻی اØĩØˇŲ„اح ØĒØŦŲˆÛŒØ˛ ÚŠØą ØąÛÛ’ ہیÚē، ØĒŲˆ ØĸŲž ہŲˆ Ú¯ØĻے! اØŗ ŲžØą ڊاŲ… ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے، اگŲ„Û’ Ų…ØąØ§Ø­Ų„ ŲžØą ØšŲ…Ų„ ÚŠØąÛŒÚē۔ + +### اŲžŲ†Û’ Ų…ØŗØĻŲ„Û’ ÚŠŲˆ ŲšØąØ§ØĻی ÚŠØąŲ†Ø§ {#triaging-your-issue} + +اگŲ„ا، دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ اØŗ Ų…ØŗØĻŲ„Û’ ÚŠŲˆ Ø­Ų„ ÚŠØąÛŒÚē گے۔ اØŗ ڊا Ų…ØˇŲ„ب ہے ڊہ ŲˆÛ اØŗ باØĒ ڊا ØŦاØĻØ˛Û Ų„ÛŒÚē گے ڊہ Øĸیا اØĩØˇŲ„اح ÚŠŲˆ Ų„ØēØĒ ڊا Ø­Øĩہ ہŲˆŲ†Ø§ چاہیے (Ų†ŲˆŲšØŒ ÛØą اØĩØˇŲ„اح ÚŠŲˆ Ų‚بŲˆŲ„ Ų†ÛÛŒÚē ڊیا ØŦاØĻے گا۔ Ø´ØąØ§ØĻØˇ Ų‚اØĻŲ… ÚŠÛŒ ØŦاŲ†ÛŒ چاہØĻیÚē اŲˆØą ÚŠŲ„اؤڈ Ų…Ų‚اŲ…ÛŒ اØĩØˇŲ„احاØĒ ÚŠŲˆ ŲˆØŗیؚ ŲžÛŒŲ…اŲ†Û’ ŲžØą اØŗØĒØšŲ…اŲ„ ڊیا ØŦاŲ†Ø§ چاہیے)۔ + + +Ø¨ØąØ§Û ÚŠØąŲ… دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠŲˆ بØĒاØĻیÚē ڊہ ØĸŲž Ų†Û’ Slack ŲžØą ایڊ اØĩØˇŲ„اح ØŦŲ…Øš ÚŠØąØ§ØĻی ہے ÚŠÛŒŲˆŲ†ÚŠÛ ŲˆÛ اØŗ Øŗے Ų…Ø­ØąŲˆŲ… ØąÛ ØŗÚŠØĒے ہیÚē۔ Ų…ØĢاŲ„ÛŒ ØˇŲˆØą ŲžØą Catherine Paganini، @jmo، @Seokho Son، @Jihoon Seo@، اŲˆØą/یا iamnoah@ ÚŠŲˆ ŲšÛŒÚ¯ ÚŠØąÛŒÚē۔ Ø§Ú¯Øą اØĩØˇŲ„اح Ų…Ų†Ø¸ŲˆØą ہŲˆ ØŦاØĒی ہے اŲˆØą ØĸŲž اØŗ ŲžØą ڊاŲ… ÚŠØąŲ†Ø§ چاہØĒے ہیÚē، ØĒŲˆ ŲˆÛ اØŗے ØĸŲž ÚŠŲˆ ØĒŲŲˆÛŒØļ ÚŠØą دیÚē گے۔ + +Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ ØĸŲž ایڊ ŲˆŲ‚ØĒ Ų…ÛŒÚē ØĩØąŲ ایڊ ŲšØąŲ… ڊا دؚŲˆÛŒ ÚŠØą ØŗÚŠØĒے ہیÚē۔ Ø§Ú¯Øą ØĸŲž Ų…ØĒؚدد Ø´ØąØ§ØĻØˇ ŲžØą ڊاŲ… ÚŠØąŲ†Ø§ چاہØĒے ہیÚē، ØĒŲˆ Ø¨ØąØ§Û ÚŠØąŲ… اگŲ„ÛŒ ÚŠŲ„ÛŒŲ… ÚŠØąŲ†Û’ Øŗے ŲžÛŲ„Û’ ایڊ ÚŠŲˆ ØŽØĒŲ… ÚŠØąÛŒÚē۔ + + +### ایڊ Ų†ØĻی اØĩØˇŲ„اح ØŦŲ…Øš ÚŠØąŲ†Ø§ (ŲžÛŒ ØĸØą بŲ†Ø§Ų†Ø§) {#submitting-a-new-term} + +Ø´ØąŲˆØš ÚŠØąŲ†Û’ Øŗے ŲžÛŲ„Û’ØŒ Ø¨ØąØ§Û ÚŠØąŲ… [اØŗŲšØ§ØĻŲ„ گاØĻیڈ](/style-guide/) ÚŠŲˆ ŲžÚ‘ÚžÛŒÚē - اØŗ Øŗے Øĸگے ŲžÛŒÚ†ÚžÛ’ ÚŠŲˆ ÚŠŲ… ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد Ų…Ų„Û’ گی۔ ØŦیØŗا ڊہ اØŗŲšØ§ØĻŲ„ گاØĻیڈ Ų…ÛŒÚē بØĒایا گیا ہے، ہŲ… Ú¯ŲˆÚ¯Ų„ یا ŲˆØąÚˆ دØŗØĒاŲˆÛŒØ˛ Øŗے Ø´ØąŲˆØš ÚŠØąŲ†Û’ ÚŠÛŒ اŲ†ØĒہاØĻی ØŗŲØ§ØąØ´ ÚŠØąØĒے ہیÚē۔ + +ایڊ Ø¨Ø§Øą ØŦب اØĩØˇŲ„اح ØŦŲ…Øš ÚŠØąØ§Ų†Û’ ÚŠÛ’ Ų„یے ØĒÛŒØ§Øą ہŲˆ ØŦاØĻے، Ų…ŲˆØ§Ø¯ ŲžØą ØŦاØĻیÚē (ÚŠŲˆÚˆ ÚŠÛ’ ØĒØ­ØĒ)â€Ļ + +![Ų…ŲˆØ§Ø¯](/images/how-to/howto-05.png) + +ŲžÚžØą "en" (یا ŲˆÛ Ø˛Ø¨Ø§Ų† ØŦØŗ ÚŠÛ’ Ų„یے ØĸŲž ØŦŲ…Øš ÚŠØą ØąÛÛ’ ہیÚē)â€Ļ + + +![Ø˛Ø¨Ø§Ų† ڊا ŲŲˆŲ„ÚˆØą](/images/how-to/howto-06.png) + +اŲˆØą Ų…Ų†ØĒ؎ب ÚŠØąÛŒÚē `TEMPLATE.md_` + +![ØŗاŲ†Ú†Û’](/images/how-to/howto-07.png) + +Ų…ŲˆØ§Ø¯ ڊاŲžÛŒ ÚŠØąÛŒÚēâ€Ļ + +![Ų…ŲˆØ§Ø¯ ڊاŲžÛŒ ÚŠØąÛŒÚē](/images/how-to/howto-08.png) + +اŲˆØą ŲˆØ§ŲžØŗ "en" ŲŲˆŲ„ÚˆØą Ų…ÛŒÚē ØŦاØĻیÚē۔ "ŲØ§ØĻŲ„ شاŲ…Ų„ ÚŠØąÛŒÚē" ÚŠŲˆ دباØĻیÚē اŲˆØą "Ų†ØĻی ŲØ§ØĻŲ„ بŲ†Ø§ØĻیÚē" ÚŠŲˆ Ų…Ų†ØĒ؎ب ÚŠØąÛŒÚē۔ + + +![Ų†ØĻی ŲØ§ØĻŲ„ بŲ†Ø§ØĻیÚē](/images/how-to/howto-09.png) + +URL Ų…ÛŒÚē اØĩØˇŲ„اح ڊا Ų†Ø§Ų… شاŲ…Ų„ ÚŠØąÛŒÚē (ÚŠŲˆØĻی ÚŠÛŒŲžÛŒŲšŲ„اØĻØ˛ÛŒØ´Ų† Ų†ÛÛŒÚē، ÚŠŲˆØĻی ؎اŲ„ÛŒ ØŦگہ Ų†ÛÛŒÚē، ÚŠŲˆØĻی Ų‚ŲˆØŗیŲ† Ų†ÛÛŒÚē، اŲˆØą اŲ„ŲØ§Ø¸ ÚŠŲˆ اŲ„Ú¯ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ہاØĻŲŲ†Ø˛ ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē) اŲˆØą ØĸØŽØą Ų…ÛŒÚē md. (Ų†ŲˆŲš: Ø§Ú¯Øą ØĸŲž ڊا ŲžÛŒØ´ Ų†Ø¸Ø§ØąÛ ڊاŲ… Ų†ÛÛŒÚē ÚŠØąØĒا ہے، ØĒŲˆ ØĸŲž شاید md. ÚŠŲˆ شاŲ…Ų„ ÚŠØąŲ†Ø§ بڞŲˆŲ„ Ú¯ØĻے ØĒÚžÛ’Û” ا؎ØĒØĒاŲ…)۔ اب Ų†ÛŒÚ†Û’ ŲšÛŒŲ…ŲžŲ„ÛŒŲš ڊا Ų…ŲˆØ§Ø¯ چØŗŲžØ§Úē ÚŠØąÛŒÚē۔ ŲØ§ØĻŲ„ Ų…ÛŒÚē اŲžŲ†ÛŒ ØĒØšØąÛŒŲ ڊاŲžÛŒ اŲˆØą ŲžÛŒØŗŲš ÚŠØąÛŒÚē۔ +ØŦاØĻØ˛ŲˆÚē ÚŠŲˆ ØĸØŗاŲ† بŲ†Ø§Ų†Û’ ÚŠÛ’ Ų„یے، Ø¨ØąØ§Û ÚŠØąŲ… [ØŗیŲ…Ų†ŲšÚŠ Ų„اØĻŲ† Ø¨ØąÛŒÚŠØŗ](https://sembr.org/) **ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē** (Ų…ØĢŲ„اŲ‹ ایڊ ØŗØˇØą ŲÛŒ ØŦŲ…Ų„ہ)۔ Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ GitHub Ų…ØĒŲ† ÚŠŲˆ ŲØ§ØąŲ…ÛŒŲš ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے Ų…Ø§ØąÚŠ ڈاؤŲ† ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąØĒا ہے (Ų…ØĢاŲ„ ÚŠÛ’ ØˇŲˆØą ŲžØąØŒ ہاØĻŲžØą Ų„Ų†ÚŠØŒ بŲˆŲ„ڈ، اŲšØ§Ų„ÚŠ)۔ + Ø¨ØąØ§Û ÚŠØąŲ… اØŗ [Ų…Ø§ØąÚŠ ڈاؤŲ† چیŲš شیŲš](https://www.markdownguide.org/cheat-sheet/) ÚŠŲˆ دیڊڞیÚē۔ + اØŗ باØĒ ÚŠÛŒ ØĒŲˆØĢیŲ‚ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ڊہ ØĸŲž Ų†Û’ Ų…Ø§ØąÚŠ ڈاؤŲ† ÚŠŲˆ Ų…ØˇŲ„ŲˆØ¨Û ØˇŲˆØą ŲžØą اØŗØĒØšŲ…اŲ„ ڊیا ہے، "ŲžÛŒØ´ Ų†Ø¸Ø§ØąÛ" ŲžØą ØŦاØĻیÚē۔ + +![Ų…دØĒ ÚŠŲˆ Ø­ØĒŲ…ÛŒ Ø´ÚŠŲ„ دیÚē](/images/how-to/howto-10.png) + +ØŦب ØĸŲž ØŦŲ…Øš ÚŠØąØ§Ų†Û’ ÚŠÛ’ Ų„یے ØĒÛŒØ§Øą ہŲˆÚē ØĒŲˆ Ų†ÛŒÚ†Û’ ØŗÚŠØąŲˆŲ„ ÚŠØąÛŒÚē اŲˆØą Ų†ØĻی ÚŠŲ…Ųš ŲØ§ØĻŲ„ ڊا Ų†Ø§Ų… دیÚē۔ اب ØĸŲž اŲžŲ†ÛŒ ہی Ø¨ØąØ§Ų†Ú† Ų…ÛŒÚē اØŗ اØĩØˇŲ„اح ڊا Ø§ØąØĒڊاب ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ہیÚē۔ PR ØŦŲ…Øš ÚŠØąØ§Ų†Û’ ÚŠÛ’ Ų„یے Ų…Ø˛ÛŒØ¯ ایڊ Ų‚دŲ… Ø¯ØąÚŠØ§Øą ہے۔ "Ų†ØĻی ŲØ§ØĻŲ„ ڊا ؚہد ÚŠØąÛŒÚē" ÚŠŲˆ دباØĻیÚē اŲˆØąâ€Ļ + + +![Ų†ØĻی ŲØ§ØĻŲ„ ڊا Ø§ØąØĒڊاب ÚŠØąÛŒÚē۔](/images/how-to/howto-11.png) + +â€Ļاب ØĸŲž PR بŲ†Ø§ ØąÛÛ’ ہیÚē: + +![ایڊ ŲžÛŒ ØĸØą بŲ†Ø§ØĻیÚē](/images/how-to/howto-12.png) + +اب ØĸŲž ÚŠŲˆ "Pull Requests" ÚŠÛ’ ØĒØ­ØĒ اŲžŲ†Ø§ PR دیڊڞŲ†Ø§ چاہیے۔ + +![prs](/images/how-to/howto-13.png) + +## Ų…ŲˆØŦŲˆØ¯Û اØĩØˇŲ„اح ÚŠŲˆ اŲž ڈیŲš ÚŠØąÛŒÚē {#update-an-existing-term} + +Ų…ŲˆØŦŲˆØ¯Û اØĩØˇŲ„اح ÚŠŲˆ اŲž ڈیŲš ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے، ØĸŲž یا ØĒŲˆ ÚŠØŗی Ų…ØŗØĻŲ„Û’ ÚŠÛ’ Ø°ØąÛŒØšÛ’ ØĒبدیŲ„ÛŒ ÚŠÛŒ ØĒØŦŲˆÛŒØ˛ دے ØŗÚŠØĒے ہیÚē یا ŲžŲ„ ØąÛŒÚŠŲˆØĻØŗŲš (PR) ØŦŲ…Øš ÚŠØą ÚŠÛ’ Ø¨ØąØ§Û ØąØ§ØŗØĒ ŲšØąŲ… ÚŠŲˆ اŲž ڈیŲš ÚŠØą ØŗÚŠØĒے ہیÚē۔ + +### ÚŠØŗی Ų…ØŗØĻŲ„Û’ ÚŠÛ’ Ø°ØąÛŒØšÛ’ ØĒبدیŲ„ÛŒ ÚŠÛŒ Ø¯ØąØŽŲˆØ§ØŗØĒ ÚŠØąÛŒÚē {#request-a-change-via-an-issue} + +Ø§Ú¯Øą ØĸŲž ÚŠØŗی اØĩØˇŲ„اح ÚŠÛ’ ØŗاØĒÚž ÚŠØŗی Ų…ØŗØĻŲ„Û’ ÚŠŲˆ ØŦÚžŲ†ÚˆØ§ Ų„گاŲ†Ø§ چاہØĒے ہیÚē Ų„یڊŲ† Ų†ÛÛŒÚē ØŦاŲ†ØĒے ڊہ اØŗے ØŽŲˆØ¯ ÚŠÛŒØŗے ŲšÚžÛŒÚŠ ÚŠØąŲ†Ø§ چاہØĒے ہیÚē ØĒŲˆ "Ų…ØŗØĻŲ„ہ ÚŠÛŒ Ø§ØˇŲ„اؚ دیÚē" ŲžØą ÚŠŲ„ÚŠ ÚŠØąÛŒÚē۔ + + +![ØąŲžŲˆØąŲš ڊا Ų…ØŗØĻŲ„ہ](/images/how-to/howto-14.png) + +یہ Ø¨ØąØ§Û ØąØ§ØŗØĒ ایڊ Ų…ØŗØĻŲ„ہ ÚŠÚžŲˆŲ„ دے گا. Ø¨ØąØ§Û ÚŠØąŲ… ŲˆØļاحØĒ ÚŠØąÛŒÚē ڊہ ÚŠØŗ ØĒبدیŲ„ÛŒ ÚŠÛŒ ØļØąŲˆØąØĒ ہے اŲˆØą ÚŠÛŒŲˆÚē۔ ØŦŲ…Øš ÚŠØąŲˆØ§ØĻیÚē، اŲˆØą بØŗ۔ + + +![Ų…ØŗØĻŲ„ہ ØŦŲ…Øš ÚŠØąŲˆØ§ØĻیÚē](/images/how-to/howto-15.png) + +### ÚŠØŗی اØĩØˇŲ„اح ÚŠŲˆ Ø¨ØąØ§Û ØąØ§ØŗØĒ اŲž ڈیŲš ÚŠØąÛŒÚē {#update-a-term-directly} + +ÚŠØŗی اØĩØˇŲ„اح ÚŠŲˆ Ø¨ØąØ§Û ØąØ§ØŗØĒ ØĒبدیŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے، "اØŗ ØĩŲØ­Û Ų…ÛŒÚē ØĒØąŲ…ÛŒŲ… ÚŠØąÛŒÚē" ŲžØą ØŦاØĻیÚē۔ + +![اØŗ ØĩŲØ­Û Ų…ÛŒÚē ØĒØąŲ…ÛŒŲ… ÚŠØąÛŒÚē](/images/how-to/howto-16.png) + +اØŗ Øŗے اØĩØˇŲ„اح ڊا GitHub ØĩŲØ­Û ÚŠÚžŲ„ ØŦاØĻے گا۔ اŲžŲ†ÛŒ ØĒبدیŲ„یاÚē ÚŠØąÛŒÚē اŲˆØą PR ØŦŲ…Øš ÚŠØąŲˆØ§ØĻیÚē۔ Ø¨ØąØ§Û ÚŠØąŲ… ØĒŲØĩیŲ„ÛŒ ŲˆØļاحØĒ ÚŠÛ’ Ų„یے اŲˆŲžØą "ایڊ Ų†ØĻی اØĩØˇŲ„اح ØŦŲ…Øš ÚŠØąŲˆØ§Ų†Ø§" دیڊڞیÚē (اØŗ Ø­Øĩے ŲžØą ØŦاØĻیÚē ØŦŲˆ Ų…Ø§ØąÚŠ ڈاؤŲ† ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē باØĒ ÚŠØąØĒا ہے)۔ + +## Ų„ØēØĒ ڊا ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛŒÚē {#help-translate-the-glossary} + +Ų„ØēØĒ ÚŠŲˆ اŲžŲ†ÛŒ Ų…Ø§Ø¯ØąÛŒ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠÛ’ Ų„یے، Ø¨ØąØ§Û ÚŠØąŲ… CNCF Slack ŲžØą [glossary-#localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF) چیŲ†Ų„ Ų…ÛŒÚē شاŲ…Ų„ ہŲˆÚē اŲˆØą ہŲ…ÛŒÚē بØĒاØĻیÚē۔ ØĸŲž یا ØĒŲˆ Ų…ŲˆØŦŲˆØ¯Û ŲšÛŒŲ… Ų…ÛŒÚē شاŲ…Ų„ ہŲˆ ØŗÚŠØĒے ہیÚē یا ایڊ Ų†ØĻی ŲšÛŒŲ… بŲ†Ø§ ØŗÚŠØĒے ہیÚē (دیڊڞŲ†Û’ ÚŠÛ’ Ų„یے ڊہ اØŗ Ų…ÛŒÚē ڊیا ڊاŲ… ØĸØĒا ہے، چیڊ ØĸؤŲš یا [Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† گاØĻیڈ](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md))۔ Ø¨ØąØ§Û ÚŠØąŲ… ہŲ…Ø§ØąÛŒ Ų…اہاŲ†Û Ų„ØēØĒ ŲˆØąÚŠŲ†Ú¯ Ú¯ØąŲˆŲž Ų…ÛŒŲšŲ†Ú¯Ø˛ Ų…ÛŒÚē بڞی شاŲ…Ų„ ہŲˆÚē۔ ØĸŲž Ų…ÛŒŲšŲ†Ú¯ ÚŠÛŒ ØĒŲØĩیŲ„اØĒ [ ÚŠÛŒŲ„Ų†ÚˆØą](https://www.cncf.io/calendar/) Ų…ÛŒÚē ØĒŲ„اش ÚŠØą ØŗÚŠØĒے ہیÚē۔ ہŲ… ØĸŲž Øŗے ŲˆÛØ§Úē Ų…Ų„Ų†Û’ ÚŠÛ’ Ų…Ų†ØĒØ¸Øą ہیÚē! diff --git a/content/ur/contributor-ladder/_index.md b/content/ur/contributor-ladder/_index.md new file mode 100644 index 0000000000..9ebf0a4ccd --- /dev/null +++ b/content/ur/contributor-ladder/_index.md @@ -0,0 +1,105 @@ +--- +title: Ø´ØąØ§ÚŠØĒ Ø¯Ø§Øą ÚŠÛŒ Ø¯ØąØŦہ بŲ†Ø¯ÛŒ +toc_hide: true +status: Feedback Appreciated +menu: + main: + weight: 10 +--- + +ہیŲ„Ųˆ! 👋 CNCF Cloud Native Glossary ŲžØąŲˆØŦیڊŲš Ų…ÛŒÚē ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ Ų…ÛŒÚē ØĸŲž ÚŠÛŒ دŲ„Ú†ØŗŲžÛŒ ڊا Ø´ÚŠØąÛŒÛÛ” +چاہے ØĸŲž Ų†ØĻی اØĩØˇŲ„احاØĒ ڊا ØĒؚاŲˆŲ† ÚŠØąÛŒÚē، Ų„ØēØĒ ÚŠŲˆ اŲžŲ†ÛŒ Ų…Ø§Ø¯ØąÛŒ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē Ų„ŲˆÚŠŲ„اØĻØ˛ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛŒÚē، +یا Ø´ØąŲˆØš ÚŠØąŲ†Û’ Ų…ÛŒÚē دŲˆØŗØąŲˆÚē ÚŠÛŒ Ų…دد ÚŠØąŲ†Ø§ چاہØĒے ہیÚē، اØŗ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ڊا ŲØšØ§Ų„ ØąÚŠŲ† بŲ†Ų†Û’ ÚŠÛ’ بہØĒ Øŗے ØˇØąÛŒŲ‚Û’ ہیÚē۔ +یہ دØŗØĒاŲˆÛŒØ˛ ŲžØąŲˆØŦیڊŲš ÚŠÛ’ اŲ†Ø¯Øą ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ Ų…ØŽØĒŲ„Ų ÚŠØąØ¯Ø§ØąŲˆÚē اŲˆØą اŲ† ÚŠÛ’ ØŗاØĒÚž ØĸŲ†Û’ ŲˆØ§Ų„ÛŒ Ø°Ų…ہ Ø¯Ø§ØąÛŒŲˆÚē اŲˆØą Ų…ØąØ§ØšØ§ØĒ ڊا ؎اڊہ ŲžÛŒØ´ ÚŠØąØĒی ہے۔ + + +## 1. Contributors (ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’) + +Ų„ØēØĒ Øŗب ÚŠÛ’ Ų„یے ہے۔ ÚŠŲˆØĻی بڞی Ø´ØŽØĩ ØĩØąŲ اØŗ Ų…Ų†ØĩŲˆØ¨Û’ Ų…ÛŒÚē Ø­Øĩہ ڈاŲ„ ÚŠØą Ų„ØēØĒ ڊا Ų…ؚاŲˆŲ† بŲ† ØŗÚŠØĒا ہے۔ ØĒŲ…اŲ… Ø´ØąØ§ÚŠØĒ Ø¯Ø§ØąŲˆÚē Øŗے ØĒŲˆŲ‚Øš ÚŠÛŒ ØŦاØĒی ہے ڊہ ŲˆÛ [CNCF ÚŠŲˆÚˆ ØĸŲ ÚŠŲ†ÚˆÚŠŲš](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) ŲžØą ØšŲ…Ų„ ÚŠØąÛŒÚē۔ + +اØŗ Ų…Ų†ØĩŲˆØ¨Û’ Ų…ÛŒÚē ØĸŲž ÚŠØĻی ØˇØąØ­ Øŗے ØĒؚاŲˆŲ† ÚŠØą ØŗÚŠØĒے ہیÚē، بشŲ…ŲˆŲ„: + +- **Ų…ŲˆØ§Ø¯ ڊا ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’**: ÛØą ŲˆÛ Ø´ØŽØĩ ØŦŲˆ Ų…ŲˆØŦŲˆØ¯Û Ø´ØąØ§ØĻØˇ ÚŠŲˆ بہØĒØą بŲ†Ø§ØĒا ہے یا Ų†ØĻی Ø´ØąØ§ÚŠØĒ ÚŠØąØĒا ہے، +- **Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ڊا ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’**: ŲˆÛ Ų„ŲˆÚ¯ ØŦŲˆ Ų„ØēØĒ ÚŠŲˆ دŲˆØŗØąÛŒ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒے ہیÚē، +- **Ų…Ø¯Ø¯Ú¯Ø§Øą**: ÚŠŲˆØĻی بڞی ØŦŲˆ GitHub، Slack، یا ØŦہاÚē ڊہیÚē بڞی ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ÚŠÛ’ Ø§ØąØ§ÚŠÛŒŲ† ÚŠŲˆ Ų…دد ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØŒ دŲˆØŗØąŲˆÚē ÚŠÛŒ Ų…دد ÚŠØąØĒا ہے، +- **ØŗŲÛŒØą**: ÚŠŲˆØĻی بڞی ØŦŲˆ اØŗ باØĒ ÚŠŲˆ ŲžÚžÛŒŲ„اŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒا ہے، ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ÚŠŲˆ ØĒØšŲ„ÛŒŲ… دیØĒا ہے ڊہ ÚŠÛŒØŗے اŲžŲ†Ø§ Ø­Øĩہ ڈاŲ„Ų†Ø§ ہے اŲˆØą اŲ†ÛÛŒÚē ایØŗا ÚŠÛŒŲˆÚē ÚŠØąŲ†Ø§ چاہیے۔ + +ØĒؚاŲˆŲ† ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠÛ’ Ų…ØĒؚدد ÚŠØąØ¯Ø§Øą ہŲˆØŗÚŠØĒے ہیÚē یا ØĩØąŲ ایڊ ØšŲ„اŲ‚Û’ ŲžØą ØĒŲˆØŦہ Ų…ØąÚŠŲˆØ˛ ÚŠØąØŗÚŠØĒے ہیÚē۔ **ØĒŲ…اŲ… Ø´ØąØ§ÚŠØĒیÚē یڊØŗاÚē ØˇŲˆØą ŲžØą اہŲ… ہیÚē** اŲˆØą ایڊ ØĒØąŲ‚ÛŒ ŲžØ°ÛŒØą ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ÚŠŲˆ ŲØąŲˆØē دیŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒی ہیÚē۔ Ø¨ØąØ§Û ÚŠØąŲ… Ų…ŲˆØ§Ø¯ اŲˆØą Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ÚŠÛ’ ØĒؚاŲˆŲ† ÚŠÛ’ Ų„یے [Ø´ØąØ§ÚŠØĒ ÚŠÛŒØŗے ÚŠØąÛŒÚē](/contribute/) اŲˆØą [اØŗŲšØ§ØĻŲ„ گاØĻیڈ](/style-guide/) دیڊڞیÚē۔ + +## 2. Approvers (Ų…Ų†Ø¸ŲˆØą ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’) + +Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† PRs ŲžØą ØąØ§ØĻے دیØĒے ہیÚē اŲˆØą اŲ†ÛÛŒÚē Ų…Ų†Ø¸ŲˆØą ÚŠØąØĒے ہیÚē۔ ÚŠŲˆØĻی بڞی ŲØšØ§Ų„ ØĒؚاŲˆŲ† ÚŠŲ†Ų†Ø¯Û Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û بŲ† ØŗÚŠØĒا ہے (دیڊڞیÚē [Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„ا بŲ†Ų†Ø§](#becoming-an-approver))۔ Ų„ØēØĒ دŲˆ Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠÛ’ Ø¯ØąŲ…یاŲ† ŲØąŲ‚ ÚŠØąØĒی ہے: (1) اŲ†Ú¯ØąÛŒØ˛ÛŒ Ų„ØēØĒ ÚŠÛ’ Ų„یے Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ اŲˆØą (2) Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ŲšÛŒŲ…ŲˆÚē ÚŠÛ’ Ų„یے Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’Û” + +Ų„ØēØĒ ÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„ŲˆÚē Øŗے ØĒŲˆŲ‚Øš ÚŠÛŒ ØŦاØĒی ہے: + +- ØĒÚŠŲ†ÛŒÚŠÛŒ Ø¯ØąØŗØĒگی ÚŠÛ’ Ų„یے PRs ڊا ØŦاØĻØ˛Û Ų„ÛŒÚē، +- ØĒؚاŲˆŲ† ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠÛ’ Ų…ØŗاØĻŲ„ ØĒŲŲˆÛŒØļ ÚŠØąÛŒÚē اŲˆØą اŲ†ÛÛŒÚē Ų…Ų†Ø§Øŗب ØˇŲˆØą ŲžØą Ų„یبŲ„ ÚŠØąÛŒÚē، +- ØĒؚاŲˆŲ† ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠŲˆ ØĒاØĢØąØ§ØĒ ŲØąØ§ÛŲ… ÚŠØąÛŒÚē اŲˆØą ØļØąŲˆØąØĒ ŲžÚ‘Ų†Û’ ŲžØą اŲ† ÚŠÛŒ ØąÛŲ†Ų…اØĻی ÚŠØąÛŒÚē، +- ŲžØąŲˆŲ ØąÛŒÚˆ اŲˆØą Ú¯Ø°Ø§ØąØ´Ø§ØĒ Ų…ÛŒÚē ØĒØąŲ…ÛŒŲ… ÚŠØąÛŒÚē۔ + +Ø§Ú¯Øą ÚŠŲˆØĻی Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û Ų…Ø˛ÛŒØ¯ دŲ„Ú†ØŗŲžÛŒ Ų†ÛÛŒÚē ØąÚŠÚžØĒا ہے یا Ų…Ø°ÚŠŲˆØąÛ ŲØąØ§ØĻØļ اŲ†ØŦاŲ… Ų†ÛÛŒÚē دے ØŗÚŠØĒا ہے، ØĒŲˆ اØŗے دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠŲˆ بØĒاŲ†Ø§ چاہیے اŲˆØą اŲžŲ†Ø§ ؚہدہ چھŲˆÚ‘ دیŲ†Ø§ چاہیے۔ + +### اŲ†Ú¯ØąÛŒØ˛ÛŒ Ų„ØēØĒ ÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ + +Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠÛŒ ØĒیŲ† Ų‚ØŗŲ…ÛŒÚē ہیÚē: + +1) Ų…ØļبŲˆØˇ ØĒÚŠŲ†ÛŒÚŠÛŒ ŲžØŗ Ų…Ų†Ø¸Øą ÚŠÛ’ ØŗاØĒÚž Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų†ØŒ +2) ŲšÚžŲˆØŗ ØĒØ­ØąÛŒØąÛŒ Ų…ÛØ§ØąØĒ ÚŠÛ’ ØŗاØĒÚž Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ØŒ +3) Ų…Ų†Ø¸ŲˆØą ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ØŦŲˆ دŲˆŲ†ŲˆÚē Ų…ÛŒÚē Ų…Ø§ÛØą ہŲˆÚē۔ + +**ØĒÚŠŲ†ÛŒÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’**: Ų…ØļبŲˆØˇ ØĒÚŠŲ†ÛŒÚŠÛŒ ŲžØŗ Ų…Ų†Ø¸Øą ÚŠÛ’ حاŲ…Ų„ اŲØąØ§Ø¯ اŲ†Ú¯ØąÛŒØ˛ÛŒ Ų„ÚŠÚžŲ†Û’ ÚŠÛŒ ŲšÚžŲˆØŗ Ų…ÛØ§ØąØĒ ÚŠÛ’ بØēÛŒØą Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ ہŲˆ ØŗÚŠØĒے ہیÚē۔ ØĒاہŲ…ØŒ Ø§Ú¯Øą ŲˆÛ ØĒÚŠŲ†ÛŒÚŠÛŒ Ų…ÛŒØąŲš ŲžØą PR ÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیØĒے ہیÚē، ØĒŲˆ اŲ†ÛÛŒÚē یہ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§Ų†Ø§ چاہیے ڊہ اØŗ ڊا ØŦاØĻØ˛Û (ایڈیŲšØą) Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û ÚŠÛ’ Ø°ØąÛŒØšÛ’ ڊیا ØŦاØĻے۔ + +**ایڈیŲšØąØ˛**: ایڈیŲšØąØ˛ Ø´ØąØ§ØĻØˇ ÚŠŲˆ Ø¯ØąØŗØĒ ØˇØąÛŒŲ‚Û’ Øŗے ŲžÚ‘ÚžØĒے ہیÚē اŲˆØą اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĒے ہیÚē ڊہ اØŗŲšØ§ØĻŲ„ گاØĻیڈ ÚŠÛ’ Ų…ØˇØ§Ø¨Ų‚ اŲ† ÚŠÛŒ Øŗادہ Ø˛Ø¨Ø§Ų† Ų…ÛŒÚē ŲˆØļاحØĒ ÚŠÛŒ Ú¯ØĻی ہے۔ Ø§Ú¯Øą ÚŠØŗی اØĩØˇŲ„اح Ų…ÛŒÚē بہØĒ Ø˛ÛŒØ§Ø¯Û ØĒØąŲ…ÛŒŲ… ÚŠÛŒ Ú¯ØĻی ہے، ØĒŲˆ ایڈیŲšØą ÚŠŲˆ ایڊ ØĒÚŠŲ†ÛŒÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ Øŗے Ø¯ØąØŽŲˆØ§ØŗØĒ ÚŠØąŲ†ÛŒ چاہیے ڊہ ŲˆÛ اØŗ ڊا دŲˆØ¨Ø§ØąÛ ØŦاØĻØ˛Û Ų„Û’ ØĒاڊہ اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ÛŒØ§ ØŦا ØŗÚŠÛ’ ڊہ Ų…ØšŲ†ÛŒ ÚŠŲˆ ØĒبدیŲ„ Ų†ÛÛŒÚē ڊیا گیا ہے۔ + +### Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ÚŠÛ’ Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† + +Ų„ØēØĒ Ų…ÛŒÚē Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ÚŠÛŒ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ بڞی ہیÚē۔ یہ Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ŲšÛŒŲ…ŲˆÚē Ų…ÛŒÚē Øŗے ایڊ ÚŠÛ’ Ų„یے Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ہیÚē (ŲØąØļ ڊا ØĒØąØŦŲ…ہ ÚŠØąŲ†Û’ ŲˆØ§Ų„ÛŒ ŲšÛŒŲ…ÛŒÚē)۔ Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ÚŠÛ’ Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠŲˆ ØĩØąŲ اŲžŲ†ÛŒ ŲšÛŒŲ… ÚŠÛ’ Ų„یے Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ ÚŠÛ’ ŲØąØ§ØĻØļ اŲ†ØŦاŲ… دیŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ ہے اŲˆØą ŲˆÛ PRs ÚŠŲˆ اŲžŲ†ÛŒ Ų…ØŽØĩŲˆØĩ ØĒØąŲ‚یاØĒی شا؎ Ų…ÛŒÚē ØļŲ… ÚŠØąŲ†Û’ ÚŠÛŒ اہŲ„ÛŒØĒ ØąÚŠÚžØĒے ہیÚē۔ ÚŠŲˆØĻی بڞی Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† Ų…Ų†Ø¸ŲˆØą ÚŠØąŲ†Û’ ŲˆØ§Ų„ا اŲ†Ú¯ØąÛŒØ˛ÛŒ Ų„ØēØĒ ÚŠÛ’ Ų„یے بڞی Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û بŲ† ØŗÚŠØĒا ہے Ø§Ú¯Øą ŲˆÛ ØļØąŲˆØąÛŒØ§ØĒ ÚŠŲˆ ŲžŲˆØąØ§ ÚŠØąØĒا ہے۔ + +### Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û بŲ†Ų†Ø§ + +Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ اŲ…یدŲˆØ§ØąŲˆÚē ÚŠÛ’ ŲžØ§Øŗ اؚŲ„ÛŒŲ° Ų…ØšÛŒØ§Øą ÚŠÛ’ PRs ØŦŲ…Øš ÚŠØąØ§Ų†Û’ اŲˆØą ØļŲ… ہŲˆŲ†Û’ ŲˆØ§Ų„ÛŒ حاŲ„ØĒ Ų…ÛŒÚē PRs حاØĩŲ„ ÚŠØąŲ†Û’ Ų…ÛŒÚē دŲˆØŗØąŲˆÚē ÚŠÛŒ Ų…دد ÚŠØąŲ†Û’ ڊا ایڊ ØĢابØĒ شدہ ŲšØąÛŒÚŠ ØąÛŒÚŠØ§ØąÚˆ ہŲˆŲ†Ø§ چاہیے۔ Ø§Ú¯Øą اŲ† ڊا ŲšØ§ØĻŲ… Ø˛ŲˆŲ† اØŦØ§Ø˛ØĒ دیØĒا ہے، ØĒŲˆ اŲ†ÛÛŒÚē [Ų„ØēØĒ ÚŠÛ’ ŲˆØąÚŠŲ†Ú¯ Ú¯ØąŲˆŲž](https://www.cncf.io/calendar/) ÚŠÛ’ اØŦŲ„اØŗŲˆÚē Ų…ÛŒÚē بڞی باŲ‚اؚدگی Øŗے Ø´ØąÚŠØĒ ÚŠØąŲ†ÛŒ چاہیے۔ + +Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û بŲ†Ų†Û’ ÚŠÛ’ Ų„یے، Ų…ŲˆØŦŲˆØ¯Û Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ Øŗے دŲ„Ú†ØŗŲžÛŒ ڊا Ø§Ø¸ÛØ§Øą ÚŠØąØĒے ہŲˆØĻے Ø´ØąŲˆØš ÚŠØąÛŒÚē۔ اØŗ ÚŠÛ’ بؚد Ų…ŲˆØŦŲˆØ¯Û دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ØĸŲž Øŗے PRs ڊا Ø­Øĩہ ڈاŲ„ ÚŠØąØŒ ØŦاØĻØ˛Û’ ÚŠØą ÚŠÛ’ØŒ اŲˆØą اŲ† ÚŠÛŒ ØąÛŲ†Ų…اØĻی Ų…ÛŒÚē اØŗ ØˇØąØ­ ÚŠÛ’ Ø¯ÛŒÚ¯Øą ڊاŲ…ŲˆÚē ÚŠÛ’ Ø°ØąÛŒØšÛ’ اŲˆŲžØą دی Ú¯ØĻی Ų‚ابŲ„ÛŒØĒ ڊا Ų…Ø¸Ø§ÛØąÛ ÚŠØąŲ†Û’ ÚŠŲˆ ڊہیÚē گے۔ ایڊ ØŗاØĒÚž ڊاŲ… ÚŠØąŲ†Û’ ÚŠÛ’ کچھ ŲˆŲ‚ØĒ ÚŠÛ’ بؚد، Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ ŲÛŒØĩŲ„ہ ÚŠØąÛŒÚē گے ڊہ Øĸیا ØĸŲž ÚŠŲˆ Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û ڊا Ø¯ØąØŦہ دیŲ†Ø§ ہے۔ یہ ŲÛŒØĩŲ„ہ ØĸŲž ÚŠÛŒ Ø¸Ø§ÛØą ÚŠØąØ¯Û Ų…ÛØ§ØąØĒ اŲˆØą ØąØ¯ØšŲ…Ų„ ÚŠÛŒ ØŗØˇØ­ ŲžØą ہŲˆÚ¯Ø§Û” + +## 3. دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ + +دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ Ų…Ų†Ø¸ŲˆØąÛŒ دیŲ†Û’ ŲˆØ§Ų„Û’ ہیÚē ØŦŲˆ PRs ÚŠŲˆ ØļŲ… بڞی ÚŠØą ØŗÚŠØĒے ہیÚē۔ ÚŠŲˆØĻی بڞی Ų„ØēØĒ ÚŠÛŒ دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ا بŲ† ØŗÚŠØĒا ہے (دیڊڞیÚē [Ų…Ų„احظہ ÚŠØąŲ†Û’ ŲˆØ§Ų„ا بŲ†Ų†Ø§](#becoming-a-maintainer))۔ + دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠÛ’ Ų„یے کچھ ØĒŲˆŲ‚ؚاØĒ ہیÚē، بشŲ…ŲˆŲ„: + +- ایڊ ŲØšØ§Ų„ اŲˆØą Ø°Ų…ہ Ø¯Ø§Øą Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Û بŲ†ÛŒÚē (اŲˆŲžØą دیڊڞیÚē) +- ØąÛŒŲžŲˆØ˛ŲšØąÛŒ ÚŠŲˆ Ø¨ØąŲ‚ØąØ§Øą ØąÚŠÚžŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛŒÚē، بشŲ…ŲˆŲ„ ØŗاØĻŲš ÚŠŲ†ŲÛŒÚ¯ØąÛŒØ´Ų†ØŒ اØŦØ§Ø˛ØĒ، ایشŲˆ ŲšÛŒŲ…ŲžŲ„ÛŒŲšØŒ Ú¯Ųš ہب ŲˆØąÚŠ ŲŲ„ŲˆØŒ Ø¯ÛŒÚ¯ØąØŒ +- Glossary Slack چیŲ†Ų„Ø˛ ÚŠÛŒ Ų†Ú¯ØąØ§Ų†ÛŒ ÚŠØąÛŒÚē اŲˆØą ØŦب بڞی Ų…Ų…ÚŠŲ† ہŲˆ Ų…دد ÚŠØąÛŒÚē، +- [Ų„ØēØĒ ŲˆØąÚŠŲ†Ú¯ Ú¯ØąŲˆŲž ÚŠÛ’ اØŦŲ„اØŗŲˆÚē](https://www.cncf.io/calendar/) Ų…ÛŒÚē باŲ‚اؚدگی Øŗے Ø´ØąÚŠØĒ ÚŠØąÛŒÚē (Ø§Ú¯Øą ŲšØ§ØĻŲ… Ø˛ŲˆŲ† ÚŠÛŒ اØŦØ§Ø˛ØĒ ہŲˆ) + +Ø§Ú¯Øą ÚŠŲˆØĻی دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ا Ų…Ø˛ÛŒØ¯ دŲ„Ú†ØŗŲžÛŒ Ų†ÛÛŒÚē ØąÚŠÚžØĒا یا اŲˆŲžØą دیے Ú¯ØĻے ŲØąØ§ØĻØļ اŲ†ØŦاŲ… Ų†ÛÛŒÚē دے ØŗÚŠØĒا، ØĒŲˆ اØŗے ØŽŲˆØ¯ ÚŠŲˆ ایŲ…ØąÛŒŲšØŗ ÚŠÛŒ حیØĢیØĒ Ų…ÛŒÚē Ų…Ų†ØĒŲ‚Ų„ ÚŠØąŲ†Ø§ چاہیے۔ + +### Ų…ÛŒŲ†ŲšÛŒŲ†Øą بŲ†Ų†Ø§ + +دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠÛ’ ŲžØ§Øŗ ڊاŲ…یاب Ų…Ų†Ø¸ŲˆØą ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ہŲˆŲ†Û’ اŲˆØą اؚŲ„ÛŒŲ° Ų…ØšÛŒØ§Øą ÚŠÛ’ PR ØŦŲ…Øš ÚŠØąØ§Ų†Û’ ڊا ØĢابØĒ شدہ ŲšØąÛŒÚŠ ØąÛŒÚŠØ§ØąÚˆ ہŲˆŲ†Ø§ چاہیے۔ Ø§Ú¯Øą اŲ† ڊا ŲšØ§ØĻŲ… Ø˛ŲˆŲ† اØŦØ§Ø˛ØĒ دیØĒا ہے، ØĒŲˆ اŲ†ÛÛŒÚē Ų„ØēØĒ ÚŠÛ’ ŲˆØąÚŠŲ†Ú¯ Ú¯ØąŲˆŲž ÚŠÛ’ اØŦŲ„اØŗŲˆÚē Ų…ÛŒÚē بڞی باŲ‚اؚدگی Øŗے Ø´ØąÚŠØĒ ÚŠØąŲ†ÛŒ چاہیے۔ + +Ų…ÛŒŲ†ŲšÛŒŲ†Øą بŲ†Ų†Û’ ÚŠÛ’ Ų„یے، Ų…ŲˆØŦŲˆØ¯Û Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ Øŗے دŲ„Ú†ØŗŲžÛŒ ڊا Ø§Ø¸ÛØ§Øą ÚŠØąØĒے ہŲˆØĻے Ø´ØąŲˆØš ÚŠØąÛŒÚē۔ اØŗ ÚŠÛ’ بؚد Ų…ŲˆØŦŲˆØ¯Û دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ØĸŲž Øŗے PRs ڊا Ø­Øĩہ ڈاŲ„ ÚŠØąØŒ ØŦاØĻØ˛Û’ ÚŠØą ÚŠÛ’ØŒ اŲˆØą اŲ† ÚŠÛŒ ØąÛŲ†Ų…اØĻی Ų…ÛŒÚē اØŗ ØˇØąØ­ ÚŠÛ’ Ø¯ÛŒÚ¯Øą ڊاŲ…ŲˆÚē ÚŠÛ’ Ø°ØąÛŒØšÛ’ اŲˆŲžØą دی Ú¯ØĻی Ų‚ابŲ„ÛŒØĒ ڊا Ų…Ø¸Ø§ÛØąÛ ÚŠØąŲ†Û’ ÚŠŲˆ ڊہیÚē گے۔ کچھ ŲˆŲ‚ØĒ ÚŠÛ’ ØŗاØĒÚž Ų…Ų„ ÚŠØą ڊاŲ… ÚŠØąŲ†Û’ ÚŠÛ’ بؚد، Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ ŲÛŒØĩŲ„ہ ÚŠØąÛŒÚē گے ڊہ Ų…ÛŒŲ†ŲšÛŒŲ†Øą ڊا Ø¯ØąØŦہ دیŲ†Ø§ ہے یا Ų†ÛÛŒÚē۔ یہ ŲÛŒØĩŲ„ہ Ų…Ø¸Ø§ÛØąÛ’ ÚŠÛŒ Ų…ÛØ§ØąØĒ اŲˆØą ØąØ¯ØšŲ…Ų„ ÚŠÛŒ ØŗØˇØ­ ŲžØą ہŲˆÚ¯Ø§Û” + +## 4. ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØąØ˛ + +ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØąØ˛ ایڊ ØŽŲˆØ´ ØĸØĻŲ†Ø¯ اŲˆØą Ų…Ø´ØēŲˆŲ„ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ÚŠŲˆ ŲØąŲˆØē دیŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒے ہیÚē۔ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ڊا ÚŠŲˆØĻی بڞی ØąÚŠŲ† ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØą بŲ† ØŗÚŠØĒا ہے۔ اŲ† Øŗے ØĒŲˆŲ‚Øš ÚŠÛŒ ØŦاØĒی ہے ڊہ: + +- Ų†ØĻے Ø§ØąØ§ÚŠÛŒŲ† ÚŠŲˆ ØŽŲˆØ´ ØĸŲ…دید ڊہØĒے ہیÚē اŲˆØą اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĒے ہیÚē ڊہ ŲˆÛ اŲžŲ†ÛŒ ØļØąŲˆØąØĒ ÚŠÛŒ Ų…ØšŲ„ŲˆŲ…اØĒ حاØĩŲ„ ÚŠØąÛŒÚē، +- ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ ÚŠÛ’ ØŗŲˆØ§Ų„اØĒ ÚŠÛ’ ØŦŲˆØ§Ø¨ دیŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛŒÚē یا ÚŠØŗی ایØŗے Ø´ØŽØĩ ÚŠÛŒ Ø´Ų†Ø§ØŽØĒ ÚŠØąÛŒÚē ØŦŲˆ Ų…دد ÚŠØą ØŗÚŠÛ’ØŒ +- ØŗŲ„یڊ ŲžØą اؚØĒداŲ„ ŲžØŗŲ†Ø¯ Ú¯ŲØĒÚ¯ŲˆÛ” + +### ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØą بŲ†ÛŒÚē + +ÚŠŲˆØĻی بڞی Ų„ØēØĒ ÚŠÛŒ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØą بŲ† ØŗÚŠØĒا ہے۔ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØąØ˛ ÚŠŲˆ Ø´ØąØ§ÚŠØĒ اŲˆØą Ų„ŲˆÚŠŲ„اØĻØ˛ÛŒØ´Ų† ÚŠÛ’ ØšŲ…Ų„ ÚŠÛŒ ŲšÚžŲˆØŗ ØŗŲ…ØŦÚž ہŲˆŲ†ÛŒ چاہیے اŲˆØą دŲˆØŗØąŲˆÚē ÚŠÛ’ ØŗاØĒÚž باØĒ چیØĒ اŲˆØą Ų…دد ÚŠØąŲ†Û’ Øŗے Ų„ØˇŲ اŲ†Ø¯ŲˆØ˛ ہŲˆŲ†Ø§ چاہیے۔ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØą بŲ†Ų†Û’ ÚŠÛ’ Ų„یے، Ų…ŲˆØŦŲˆØ¯Û Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ Øŗے دŲ„Ú†ØŗŲžÛŒ ڊا Ø§Ø¸ÛØ§Øą ÚŠØąØĒے ہŲˆØĻے Ø´ØąŲˆØš ÚŠØąÛŒÚē۔ ØĸŲ† بŲˆØąÚˆŲ†Ú¯/ØĸØ˛Ų…اØĻشی Ų…دØĒ ÚŠÛ’ بؚد، دیڊڞ بڞاŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„Û’ ŲÛŒØĩŲ„ہ ÚŠØąÛŒÚē گے ڊہ ڊیا ÚŠØ§ØąÚŠØąØ¯Ú¯ÛŒ ÚŠÛŒ بŲ†ÛŒØ§Ø¯ ŲžØą ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ Ų…ÛŒŲ†ÛŒØŦØą ڊا Ø¯ØąØŦہ دیŲ†Ø§ ہے۔ + +## ØēÛŒØą Ø§ØąØ§Ø¯ÛŒ ØˇŲˆØą ŲžØą ہŲšØ§Ų†Ø§ + +ØŦب Ø°Ų…ہ Ø¯Ø§ØąÛŒŲˆÚē اŲˆØą ØĒŲ‚اØļŲˆÚē ÚŠŲˆ ŲžŲˆØąØ§ Ų†ÛÛŒÚē ڊیا ØŦاØĒا ہے ØĒŲˆ Ø´ØąØ§ÚŠØĒ ÚŠŲ†Ų†Ø¯Û ÚŠŲˆ ØēÛŒØą Ø§ØąØ§Ø¯ÛŒ ØˇŲˆØą ŲžØą ہŲšØ§Ų†Ø§ ہŲˆØĒا ہے۔ اØŗ Ų…ÛŒÚē ØēÛŒØąŲØšØ§Ų„ÛŒØĒ ÚŠÛ’ Ø¨Ø§Øą Ø¨Ø§Øą Ų†Ų…ŲˆŲ†Û’ØŒ ØēÛŒØąŲØšØ§Ų„ÛŒØĒ ÚŠÛŒ ØĒŲˆØŗیؚی Ų…دØĒ، اŲˆØą/یا ØļØ§Ø¨ØˇÛ ا؎Ų„اŲ‚ ÚŠÛŒ ØŽŲ„اŲ ŲˆØąØ˛ÛŒ شاŲ…Ų„ ہŲˆ ØŗÚŠØĒی ہے۔ یہ ØšŲ…Ų„ اہŲ… ہے ÚŠÛŒŲˆŲ†ÚŠÛ یہ ÚŠŲ…ÛŒŲˆŲ†ŲšÛŒ اŲˆØą اØŗ ÚŠÛ’ ڈیŲ„ÛŒŲˆØą ایبŲ„Ø˛ ÚŠÛŒ Ø­ŲØ§Ø¸ØĒ ÚŠØąØĒا ہے ØŦبڊہ Ų†ØĻے Ø´ØąØ§ÚŠØĒ Ø¯Ø§ØąŲˆÚē ÚŠÛ’ Ų„یے Ų‚دŲ… بڑڞاŲ†Û’ ÚŠÛ’ Ų…ŲˆØ§Ų‚Øš بڞی ÚŠÚžŲˆŲ„ØĒا ہے۔ + +## Ų‚دŲ… چھŲˆÚ‘Ų†Ø§/ایŲ…ØąÛŒŲšØŗ ڊا ØšŲ…Ų„ + +Ø§Ú¯Øą اŲˆØą ØŦب Ø´ØąØ§ÚŠØĒ ÚŠŲ†Ų†Ø¯Ú¯Ø§Ų† ÚŠÛ’ ØšØ˛Ų… ÚŠÛŒ ØŗØˇØ­ ØĒبدیŲ„ ہŲˆØĒی ہے ØĒŲˆØŒ Ø´ØąØ§ÚŠØĒ Ø¯Ø§Øą Ų‚دŲ… چھŲˆÚ‘Ų†Û’ ŲžØą ØēŲˆØą ÚŠØą ØŗÚŠØĒے ہیÚē (Ų…ØļاŲ…ÛŒŲ† ÚŠÛŒ Øŗیڑڞی Øŗے Ų†ÛŒÚ†Û’ ØŦاŲ†Ø§) بŲ…Ų‚ابŲ„ہ ایŲ…ØąÛŒŲšØŗ ØŗŲšÛŒŲšØŗ ŲžØą Ų…Ų†ØĒŲ‚Ų„ ہŲˆŲ†Ø§ (Ų…ÚŠŲ…Ų„ ØˇŲˆØą ŲžØą ŲžØąŲˆØŦیڊŲš Øŗے اŲ„Ú¯ ہŲˆŲ†Ø§)۔ + +## ایڊ ÚŠØąØ¯Ø§Øą Ų…ÛŒÚē ŲˆØ§ŲžØŗ ØŦاŲ†Ø§ + +Ø§Ú¯Øą اŲˆØą ØŦب ÚŠŲˆØĻی ØŗابŲ‚ہ â€‹â€‹Ø´ØąØ§ÚŠØĒ Ø¯Ø§Øą ÚŠÛ’ ÚŠØąØ¯Ø§Øą Ų…ÛŒÚē ŲˆØ§ŲžØŗ ØĸŲ†Û’ ÚŠÛ’ Ų„یے دØŗØĒیاب ہŲˆØĒا ہے، ØĒŲˆ ŲžØąŲˆØŦیڊŲš ÚŠÛŒ Ų‚یادØĒ اØŗ ڊا بŲ†Ø¯ŲˆØ¨ØŗØĒ ÚŠØą ØŗÚŠØĒی ہے اŲˆØą اØŗ ŲžØą ØēŲˆØą ÚŠØą ØŗÚŠØĒی ہے۔ + diff --git a/content/ur/devops.md b/content/ur/devops.md new file mode 100644 index 0000000000..1e54f8a1e5 --- /dev/null +++ b/content/ur/devops.md @@ -0,0 +1,21 @@ +--- +title: ڈیŲˆ ØĸŲžØŗ(DevOps) +status: Completed +category: ØĒØĩŲˆØą +tags: ["ØˇØąÛŒŲ‚ہ ÚŠØ§Øą", "", ""] +--- + +## یہ ڊیا ہے + +ڈیŲˆ ØĸŲžØŗ ایڊ ØˇØąÛŒŲ‚ہ ÚŠØ§Øą ہے ØŦØŗ Ų…ÛŒÚē ŲšÛŒŲ…ÛŒÚē ایŲžŲ„ÛŒ ڊیشŲ† ÚŠÛŒ ØĒØąŲ‚ÛŒ Øŗے Ų„Û’ ÚŠØą ŲžØąŲˆÚˆÚŠØ´Ų† ØĸŲžØąÛŒØ´Ų†Ø˛ ØĒÚŠ ŲžŲˆØąÛ’ ØšŲ…Ų„ ÚŠÛŒ Ø°Ų…ہ Ø¯Ø§Øą ہŲˆØĒی ہیÚē۔ یہ ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی ÚŠÛ’ ایڊ ØŗیŲš ÚŠŲˆ Ų†Ø§ŲØ° ÚŠØąŲ†Û’ Øŗے Øĸگے ہے، اØŗ Ų…ÛŒÚē ØĒŲ†Ø¸ÛŒŲ…ŲˆÚē ÚŠÛ’ اŲ†Ø¯Øą ÚŠŲ„Ú†Øą اŲˆØą ŲžØąŲˆØŗیØŗØ˛ ÚŠÛŒ Ų…ÚŠŲ…Ų„ ØĒبدیŲ„ÛŒ ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØĒی ہے۔ ڈیŲˆ ØĸŲžØŗ، اŲ†ØŦیŲ†ØĻØąØ˛ ÚŠÛ’ Ú¯ØąŲˆŲžŲˆÚē ÚŠŲˆ ØˇŲ„ب ÚŠØąØĒا ہے ØŦŲˆ چھŲˆŲšÛ’ اØŦØ˛Ø§ØĄ (بŲ…Ų‚ابŲ„ہ ایڊ ŲžŲˆØąÛŒ ØŽØĩŲˆØĩیØĒ) ŲžØą ڊاŲ… ÚŠØąØĒے ہیÚē، ØĒبادŲ„Û’ ÚŠŲˆ ÚŠŲ… ÚŠØąØĒے ہیÚē، ØŦŲˆ ڊہ ØēŲ„ØˇÛŒŲˆÚē ڊا ایڊ ؚاŲ… Ø°ØąÛŒØšÛ ہے۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ØąŲˆØ§ÛŒØĒی ØˇŲˆØą ŲžØąØŒ [ Ų…ØļبŲˆØˇÛŒ Øŗے ØŦŲˆÚ‘Û’ ہŲˆØĻے](/tightly-coupled-architectures/) [Ų…Ų†ŲˆŲ„ØĒÚžÚŠ ایŲžØŗ](/monolithic-apps/), +ŲˆØ§Ų„ÛŒ ŲžÛŒÚ†ÛŒØ¯Û ØĒŲ†Ø¸ÛŒŲ…ŲˆÚē Ų…ÛŒÚē، ڊاŲ… ؚاŲ… ØˇŲˆØą ŲžØą Ų…ØĒؚدد Ú¯ØąŲˆŲžŲˆÚē ÚŠÛ’ Ø¯ØąŲ…یاŲ† Ø¨ÚŠÚžØąØ§ ہŲˆØĒا ہے۔ اØŗ ÚŠÛŒ ŲˆØŦہ Øŗے Ų…ØĒؚدد ØĒبادŲ„Û’ اŲˆØą Ų‚ØĒی ØšØąØĩہ ŲžÛŒØ¯Ø§ ہŲˆØĒا ہے۔ ÛØą Ø¨Ø§Øą ØŦب ÚŠŲˆØĻی ØŦØ˛Ųˆ یا اŲž ڈیŲš ØĒÛŒØ§Øą ہŲˆØĒی ØĒڞی، اØŗے اگŲ„ÛŒ ŲšÛŒŲ… ÚŠÛ’ Ų„یے Ų‚ØˇØ§Øą Ų…ÛŒÚē ØąÚŠÚžØ§ ØŦاØĒا ØĒڞا۔ چŲˆŲ†ÚŠÛ ڊاŲ… ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē Ų†Û’ اØŗ Ų…Ų†ØĩŲˆØ¨Û’ ÚŠÛ’ ØĩØąŲ ایڊ چھŲˆŲšÛ’ Øŗے ŲšÚŠÚ‘Û’ ŲžØą ڊاŲ… ڊیا ØĒڞا، اØŗ Ų„یے اØŗ Ų†Ų‚ØˇÛ Ų†Ø¸Øą ÚŠÛŒ ÚŠŲˆØĻی Ų…Ų„ÚŠÛŒØĒ Ų†Ø§ ہŲˆØĒی۔ ڊاŲ… ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ڊا Ų…Ų‚Øĩد ڊاŲ… ÚŠŲˆ اگŲ„Û’ Ú¯ØąŲˆŲž ØĒÚŠ ŲžÛŲ†Ú†Ø§Ų†Ø§ ØĒڞا، گاہڊ ÚŠŲˆ Øĩحیح ŲØšØ§Ų„ÛŒØĒ ŲØąØ§ÛŲ… ÚŠØąŲ†Ø§ Ų†ÛÛŒÚē - یہ ØĒØąØŦیحاØĒ ÚŠÛŒ ØĩاŲ Ų…؎اŲ„ŲØĒ ØĒڞی۔ +ØŦب ØĒÚŠ ÚŠŲˆÚˆ ØĸØŽØą ÚŠØ§Øą ŲžØąŲˆÚˆÚŠØ´Ų† Ų…ÛŒÚē ØĸØĒا، یہ اØĒŲ†Û’ Ø˛ÛŒØ§Ø¯Û ڈŲˆÛŒŲ„ŲžØąØ˛ Øŗے Ú¯Ø˛ØąØ§ØŒ اØĒŲ†ÛŒ Ų‚ØˇØ§ØąŲˆÚē Ų…ÛŒÚē اŲ†ØĒØ¸Ø§Øą ÚŠØą ØąÛØ§ ØĒڞا ڊہ Ø§Ú¯Øą ÚŠŲˆÚˆ ڊاŲ… Ų†ÛÛŒÚē ÚŠØąØĒا ØĒŲˆ Ų…ØŗØĻŲ„ہ ÚŠÛŒ اØĩŲ„ ŲˆØŦہ ڊا ŲžØĒہ Ų„گاŲ†Ø§ Ų…Ø´ÚŠŲ„ ØĒڞا۔ ڈیŲˆ ØĸŲžØŗ اØŗ Ų†Ų‚ØˇÛ Ų†Ø¸Øą ÚŠŲˆ اŲ„ŲšØ§ ÚŠØą دیØĒا ہے۔ + + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ایڊ ŲšÛŒŲ… ÚŠÛ’ ŲžØ§Øŗ ایŲžŲ„ÛŒ ڊیشŲ† ÚŠÛ’ ŲžŲˆØąÛ’ Ų„اØĻŲ ØŗاØĻیڊŲ„ ÚŠÛŒ Ų…Ų„ÚŠÛŒØĒ ÚŠÛ’ باؚØŗ ÚŠŲ… Øŗے ÚŠŲ… ØĒبدیŲ„یاÚē ØĸØĒی ہیÚē، ŲžØąŲˆÚˆÚŠØ´Ų† Ų…ÛŒÚē ØĒØšÛŒŲ†Ø§ØĒ ÚŠØąØĒے ŲˆŲ‚ØĒ ØŽØˇØąÛ ÚŠŲ… ہŲˆØĒا ہے، بہØĒØą ÚŠŲˆÚˆ ڊا Ų…ØšÛŒØ§Øą ہŲˆØĒا ہے ÚŠÛŒŲˆŲ†ÚŠÛ ŲšÛŒŲ…ÛŒÚē اØŗ باØĒ ÚŠÛŒ بڞی Ø°Ų…ہ Ø¯Ø§Øą ہŲˆØĒی ہیÚē ڊہ ÚŠŲˆÚˆ ŲžØąŲˆÚˆÚŠØ´Ų† Ų…ÛŒÚē ÚŠÛŒØŗی ÚŠØ§ØąÚŠØąØ¯Ú¯ÛŒ ڊا Ų…Ø¸Ø§ÛØąÛ ÚŠØąØĒا ہے اŲˆØą Ø˛ÛŒØ§Ø¯Û ØŽŲˆØ¯ Ų…ØŽØĒØ§ØąÛŒ اŲˆØą Ų…Ų„ÚŠÛŒØĒ ÚŠÛŒ ŲˆØŦہ Øŗے Ų…Ų„Ø§Ø˛Ų…ÛŒŲ† ÚŠÛ’ Ø§ØˇŲ…ÛŒŲ†Ø§Ų† Ų…ÛŒÚē اØļاŲÛ ہŲˆØĒا ہے۔ diff --git a/content/ur/distributed-systems.md b/content/ur/distributed-systems.md new file mode 100644 index 0000000000..62726f56ef --- /dev/null +++ b/content/ur/distributed-systems.md @@ -0,0 +1,24 @@ +--- +title: ØĒŲ‚ØŗیŲ… شدہ Ų†Ø¸Ø§Ų…(Distributed System) +status: Completed +category: ØĒØĩŲˆØą +tags: ["ŲŲ† ØĒØšŲ…ÛŒØą", "", ""] +--- + +## یہ ڊیا ہے + +ØĒŲ‚ØŗیŲ… شدہ Ų†Ø¸Ø§Ų… ØŽŲˆØ¯ Ų…ØŽØĒØ§Øą ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ØšŲ†Ø§ØĩØą ڊا ایڊ Ų…ØŦŲ…ŲˆØšÛ ہے ØŦŲˆ ایڊ Ų†ÛŒŲš ŲˆØąÚŠ ŲžØą ØŦڑا ہŲˆØĒا ہے ØŦŲˆ ØĩØ§ØąŲÛŒŲ† ÚŠŲˆ ایڊ اڊŲšÚžÛ’ Ų†Ø¸Ø§Ų… ÚŠÛ’ ØˇŲˆØą ŲžØą Ø¸Ø§ÛØą ہŲˆØĒا ہے۔ ؚاŲ… ØˇŲˆØą ŲžØą اŲ†ÛÛŒÚē [Ų†ŲˆÚˆØ˛](/nodes/) ڊہا ØŦاØĒا ہے، یہ اØŦØ˛Ø§ØĄ ÛØ§ØąÚˆŲˆÛŒØĻØą ڈیŲˆØ§ØĻØŗØ˛ (Ų…ØĢŲ„اŲ‹ ÚŠŲ…ŲžÛŒŲˆŲšØąØŒ Ų…ŲˆØ¨Ø§ØĻŲ„ ŲŲˆŲ†) یا ØŗاŲŲš ŲˆÛŒØĻØą ہŲˆ ØŗÚŠØĒے ہیÚē۔ Ų†ŲˆÚˆØ˛ ÚŠŲˆ ایڊ Ų…Ø´ØĒØąÚŠÛ Ų…Ų‚Øĩد حاØĩŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ŲžØąŲˆÚ¯ØąØ§Ų… ڊیا ØŦاØĒا ہے ،اØŗ ÚŠÛ’ ØšŲ„اŲˆÛ ŲˆÛ ØĒؚاŲˆŲ† ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ŲˆÛ Ų†ÛŒŲš ŲˆØąÚŠ ŲžØą ŲžÛŒØēاŲ…اØĒ ڊا ØĒبادŲ„ہ ÚŠØąØĒے ہیÚē۔ + + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ØĸØŦ ÚŠŲ„ Ų…ØĒؚدد ØŦدید ایŲžŲ„ÛŒ ڊیشŲ†Ø˛ اØĒŲ†ÛŒ بڑی ہیÚē ڊہ اŲ†ÛÛŒÚē چŲ„اŲ†Û’ ÚŠÛ’ Ų„یے ØŗŲžØą ÚŠŲ…ŲžÛŒŲˆŲšØąØ˛ ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆÚ¯ÛŒÛ” ØŦی Ų…ÛŒŲ„ یا Ų†ÛŒŲš ŲŲ„ÚŠØŗ ŲžØą ØēŲˆØą ÚŠØąÛŒÚē۔ ÚŠŲˆØĻی ایڊ ÚŠŲ…ŲžÛŒŲˆŲšØą اØĒŲ†Ø§ ØˇØ§Ų‚ØĒŲˆØą Ų†ÛÛŒÚē ہے ڊہ ŲžŲˆØąÛŒ ایŲžŲ„یڊیشŲ† ÚŠÛ’ یŲˆØ˛ØąØ˛ ÚŠÛŒ Ų…ÛŒØ˛Ø¨Ø§Ų†ÛŒ ÚŠØą ØŗÚŠÛ’Û” Ų…ØĒؚدد ÚŠŲ…ŲžÛŒŲˆŲšØąØ˛ ÚŠŲˆ ØŦŲˆÚ‘Ų†Û’ Øŗے، ÚŠŲ…ŲžÛŒŲˆŲš ÚŠÛŒ ØˇØ§Ų‚ØĒ ØĒŲ‚ØąÛŒØ¨Ø§Ų‹ Ų„اŲ…حدŲˆØ¯ ہŲˆ ØŦاØĒی ہے۔ ØĒŲ‚ØŗیŲ… شدہ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ÚŠÛ’ بØēÛŒØąØŒ بہØĒ Øŗی ایŲžŲ„یڊیشŲ†Ø˛ ØŦŲ† ŲžØą ہŲ… ØĸØŦ اŲ†Ø­ØĩØ§Øą ÚŠØąØĒے ہیÚē Ų…Ų…ÚŠŲ† Ų†ÛÛŒÚē ہŲˆŲ†Ú¯ÛŒÛ” + +ØąŲˆØ§ÛŒØĒی ØˇŲˆØą ŲžØąØŒ ØŗØŗŲšŲ…Ø˛ ØšŲ…ŲˆØ¯ÛŒ +[بڑڞاؤ](/scalability/) ÚŠØąØĒے ØĒÚžÛ’Û” یہ ØĒب ہŲˆØĒا ہے ØŦب ØĸŲž اŲ†ŲØąØ§Ø¯ÛŒ Ų…Ø´ÛŒŲ† Ų…ÛŒÚē Ų…Ø˛ÛŒØ¯ Øŗی ŲžÛŒ یŲˆ یا Ų…ÛŒŲ…ŲˆØąÛŒ شاŲ…Ų„ ÚŠØąØĒے ہیÚē۔ ØšŲ…ŲˆØ¯ÛŒ اØŗÚŠÛŒŲ„Ų†Ú¯ ŲˆŲ‚ØĒ ÚŠÛŒ Øļیاؚ ہے، اØŗ ÚŠÛ’ Ų„یے ڈاؤŲ† ŲšØ§ØĻŲ… ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆØĒی ہے، اŲˆØą یہ ØĒÛŒØ˛ÛŒ Øŗے اŲžŲ†ÛŒ حد ØĒÚŠ ŲžÛŲ†Ú† ØŦاØĒی ہے۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ØĒŲ‚ØŗیŲ… شدہ Ų†Ø¸Ø§Ų… [اŲŲ‚ÛŒ بڑڞاؤ](/horizontal-scaling/) ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒے ہیÚē (Ų…ØĢاŲ„ ÚŠÛ’ ØˇŲˆØą ŲžØą ØŦب بڞی ØļØąŲˆØąØĒ ہŲˆ ØŗØŗŲšŲ… Ų…ÛŒÚē Ų…Ø˛ÛŒØ¯ Ų†ŲˆÚˆØ˛ شاŲ…Ų„ ÚŠØąŲ†Ø§)۔ یہ ØŽŲˆØ¯ ÚŠØ§Øą ØˇØąÛŒŲ‚Û’ Øŗے ہŲˆ ØŗÚŠØĒا ہے ØŦØŗ Øŗے ØŗØŗŲšŲ… ÚŠŲˆ ڊاŲ… ÚŠÛ’ بŲˆØŦÚž یا ŲˆØŗاØĻŲ„ ÚŠÛŒ ÚŠÚžŲžØĒ Ų…ÛŒÚē اچاŲ†ÚŠ اØļاŲÛ’ ÚŠŲˆ ØŗŲ†Ø¨ÚžØ§Ų„ا ØŦا ØŗÚŠØĒا ہے۔ +ایڊ ØēÛŒØą ØĒŲ‚ØŗیŲ… شدہ Ų†Ø¸Ø§Ų… ØŽŲˆØ¯ ÚŠŲˆ Ų†Ø§ÚŠØ§Ų…ÛŒ ÚŠÛ’ ØŽØˇØąØ§ØĒ Øŗے دŲˆÚ†Ø§Øą ÚŠØąØĒا ہے ÚŠÛŒŲˆŲ†ÚŠÛ Ø§Ú¯Øą ایڊ Ų…Ø´ÛŒŲ† Ų†Ø§ÚŠØ§Ų… ہŲˆØŦاØĒی ہے ØĒŲˆ ŲžŲˆØąØ§ Ų†Ø¸Ø§Ų… Ų†Ø§ÚŠØ§Ų… ہŲˆØŦاØĒا ہے۔ ØĒŲ‚ØŗیŲ… شدہ Ų†Ø¸Ø§Ų… ÚŠŲˆ اØŗ ØˇØąØ­ Øŗے ÚˆÛŒØ˛Ø§ØĻŲ† ڊیا ØŦا ØŗÚŠØĒا ہے ڊہ Ø§Ú¯Øą کچھ Ų…Ø´ÛŒŲ†ÛŒÚē ڊاŲ… ÚŠØąŲ†Ø§ بŲ†Ø¯ ÚŠØą دیÚē ØĒŲˆ بڞی Ų…ØŦŲ…ŲˆØšÛŒ Ų†Ø¸Ø§Ų… ŲˆÛÛŒ Ų†ØĒاØĻیØŦ دیŲ†Û’ ÚŠÛ’ Ų„یے ڊاŲ… ØŦØ§ØąÛŒ ØąÚŠÚž ØŗÚŠÛ’Û” + diff --git a/content/ur/style-guide/_index.md b/content/ur/style-guide/_index.md new file mode 100644 index 0000000000..a693b062dd --- /dev/null +++ b/content/ur/style-guide/_index.md @@ -0,0 +1,168 @@ +--- +title: اØŗŲšØ§ØĻŲ„ گاØĻیڈ +toc_hide: true +status: Feedback Appreciated +menu: + main: + weight: 10 +--- + +یہ اØŗŲšØ§ØĻŲ„ گاØĻیڈ ØĸŲž ÚŠŲˆ Ų„ØēØĒ ÚŠÛ’ ØŗاŲ…ØšÛŒŲ†ØŒ ØĒØšØąÛŒŲ ÚŠÛŒ Øŗا؎ØĒ، ØĒŲØĩیŲ„ ÚŠÛŒ Ų…ØˇŲ„ŲˆØ¨Û ØŗØˇØ­ØŒ اŲˆØą ایڊ Ų…ØŗØĒŲ‚Ų„ اŲ†Ø¯Ø§Ø˛ ÚŠŲˆ Ø¨ØąŲ‚ØąØ§Øą ØąÚŠÚžŲ†Û’ ÚŠÛ’ ØˇØąÛŒŲ‚Û’ ÚŠŲˆ ØŗŲ…ØŦÚžŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąÛ’ گی۔ + +Cloud Native Glossary CNCF ØąÛŒŲžŲˆØ˛ŲšØąÛŒ ÚŠÛŒ [ڈیŲØ§Ų„Ųš اØŗŲšØ§ØĻŲ„ گاØĻیڈ](https://github.com/cncf/foundation/blob/master/style-guide.md) ÚŠÛŒ ŲžÛŒØąŲˆÛŒ ÚŠØąØĒی ہے۔ +اØŗ ÚŠÛ’ ØšŲ„اŲˆÛØŒ یہ Ų…Ų†Ø¯ØąØŦہ ذیŲ„ Ų‚ŲˆØ§ØšØ¯ ŲžØą ØšŲ…Ų„ ÚŠØąØĒی ہے: + +1. ØĸØŗاŲ†ØŒ Ų‚ابŲ„ ØąØŗاØĻی Ø˛Ø¨Ø§Ų† اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē، ØĒÚŠŲ†ÛŒÚŠÛŒ اØĩØˇŲ„احاØĒ اŲˆØą Ø¨Ø˛Ø¨Ø§Ų† اŲ„ŲØ§Ø¸ Øŗے Ú¯ØąÛŒØ˛ ÚŠØąÛŒÚē۔ +2. [بŲˆŲ„ چاŲ„ Øŗے ŲžØąÛÛŒØ˛ ÚŠØąÛŒÚē](https://en.wikipedia.org/wiki/Colloquialism) +3. [Ų„ØēŲˆÛŒ اŲˆØą ŲšÚžŲˆØŗ Ø˛Ø¨Ø§Ų† اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē](https://guidetogrammar.org/grammar/composition/abstract.htm) +4. [ØŗڊڑاØĻŲˆ ÚŠŲˆ چھŲˆÚ‘ دیÚē](https://en.wikipedia.org/wiki/Contraction_(grammar)) +5. [ØēÛŒØą ŲØšØ§Ų„ ØĸŲˆØ§Ø˛ ڊا اØŗØĒØšŲ…اŲ„ احØĒÛŒØ§Øˇ Øŗے ÚŠØąÛŒÚē](https://www.ef.com/ca/english-resources/english-grammar/passive-voice/) +6. [ØŦŲ…Ų„Û’ ÚŠÛ’ بیاŲ†Ø§ØĒ ÚŠŲˆ Ų…ØĢبØĒ Ø´ÚŠŲ„ Ų…ÛŒÚē بŲ†Ø§Ų†Û’ ÚŠÛŒ ÚŠŲˆØ´Ø´ ÚŠØąÛŒÚē](https://examples.yourdictionary.com/positive-sentence-examples.html) +7. [اŲ‚ØĒباØŗاØĒ ÚŠÛ’ Ø¨Ø§ÛØą ŲØŦاØĻیہ ÚŠÛ’ Ų†Ø´Ø§Ų†Ø§ØĒ Ų†Û Ų„گاØĻیÚē](https://www.grammarly.com/blog/exclamation-mark/) +8. Ų…باŲ„Øēہ ØĸØąØ§ØĻی Ų†Û ÚŠØąÛŒÚē +9. ØĒÚŠØąØ§Øą Øŗے Ú¯ØąÛŒØ˛ ÚŠØąÛŒÚē +10. Ų…ØŽØĒØĩØą ہŲˆŲ†Û’ ÚŠÛŒ ÚŠŲˆØ´Ø´ ÚŠØąÛŒÚē + +## ØŗاŲ…ØšÛŒŲ† + +یہ Ų„ØēØĒ ایڊ ØĒÚŠŲ†ÛŒÚŠÛŒ اŲˆØą ØēÛŒØą ØĒÚŠŲ†ÛŒÚŠÛŒ ØŗاŲ…ØšÛŒŲ† ÚŠÛ’ Ų„یے Ų„ÚŠÚžÛŒ Ú¯ØĻی ہے۔ +Ø¨ØąØ§Û ÚŠØąŲ… یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē ڊہ ØĒØšØąÛŒŲÛŒÚē ØĸØŗاŲ† اŲ„ŲØ§Ø¸ Ų…ÛŒÚē بیاŲ† ÚŠÛŒ Ú¯ØĻی ہیÚē اŲˆØą ØĒÚŠŲ†ÛŒÚŠÛŒ ØšŲ„Ų… ÚŠŲˆ ŲØąØļ Ų†Û ÚŠØąÛŒÚē۔ Ų…Ø˛ÛŒØ¯ یہ ڊہ یہ ڊاŲ… ذیŲ„ Ų…ÛŒÚē ØĒØšØąÛŒŲ ÚŠÛ’ ØĒØ­ØĒ ÚŠØąÛŒÚē۔ + +## ڈیŲÛŒŲ†ÛŒØ´Ų† ŲšÛŒŲ…ŲžŲ„ÛŒŲš + +ÛØą Ų„ØēØĒ ÚŠÛŒ اØĩØˇŲ„اح Ų…Ø§ØąÚŠ ڈاؤŲ† ŲØ§ØĻŲ„ Ų…ÛŒÚē Ų…Ø­ŲŲˆØ¸ ہŲˆØĒی ہے اŲˆØą اØŗ ØŗاŲ†Ú†Û’ ÚŠÛŒ ŲžÛŒØąŲˆÛŒ ÚŠØąØĒی ہے: + +```md +--- +title: +status: +category: +--- + +## یہ ڊیا ہے + +ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی یا ØĒØĩŲˆØą ڊا ŲŲˆØąÛŒ ØŽŲ„اØĩہ۔ + +## یہ ڊیا Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +اØŗ Ų…ØŗØĻŲ„Û’ ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē چŲ†Ø¯ ØŗØˇØąÛŒÚē ØŦØŗ Øŗے یہ ØŽØˇØ§Ø¨ ÚŠØą ØąÛØ§ ہے۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +اØŗ Ų…ØŗØĻŲ„Û’ ÚŠŲˆ ÚŠÛŒØŗے Ø­Ų„ ÚŠØąØĒا ہے اØŗ ŲžØą چŲ†Ø¯ ØŗØˇØąÛŒÚē۔ +``` + +### Title + +**Title** ڊا Ų„یبŲ„ ہŲ…یشہ ØĒØšØąÛŒŲ ÚŠÛ’ Ų„Û’ ØĸؤŲš ÚŠÛ’ اŲˆŲžØą ہŲˆÚ¯Ø§ØŒ اŲˆØą اØŗ ÚŠÛŒ Ų‚Ø¯Øą ØšŲ†ŲˆØ§Ų† ÚŠÛ’ Ų…ؚاŲ…Ų„Û’ Ų…ÛŒÚē ہŲˆŲ†ÛŒ چاہیے۔ + +```md +--- +title: ڈیŲÛŒŲ†ÛŒØ´Ų† ŲšÛŒŲ…ŲžŲ„ÛŒŲš +``` + +### Status + +**Status** Ų„یبŲ„ ŲšØ§ØĻŲšŲ„ Ų„یبŲ„ ÚŠÛ’ بؚد ØĸØĻے گا۔ اØŗŲšÛŒŲšØŗ Ų„یبŲ„ بØĒاØĒا ہے ڊہ Øĸیا ØĒØšØąÛŒŲŲˆÚē ÚŠÛŒ اچڞی ØˇØąØ­ ØŦاŲ†Ú† ÚŠÛŒ Ú¯ØĻی ہے یا Ų…Ø˛ÛŒØ¯ ÚŠŲˆØ´Ø´ ÚŠÛŒ ØļØąŲˆØąØĒ ہے۔ + +Ø¯ØąØŗØĒ اŲ‚Ø¯Ø§Øą ہیÚē + +- Completed +- Feedback Appreciated +- Not Started + +ØĸŲž ہŲ…یشہ ایڊ Ų…ÚŠŲ…Ų„ ØĒØšØąÛŒŲ ÚŠÛ’ ØŽŲ„اŲ Ų…ØŗØĻŲ„ہ ÚŠÚžŲˆŲ„ ØŗÚŠØĒے ہیÚē۔ ØŦب ڊہ ایڊ ØĒØšØąÛŒŲ بہاؤ Ų…ÛŒÚē ہے، اØŗ ÚŠÛŒ حیØĢیØĒ ÚŠŲˆ *ŲÛŒÚˆ بیڊ ØĒØšØąÛŒŲ شدہ* Ų…ÛŒÚē بدŲ„ دیا ØŦاØĻے گا۔ + +```md +--- +title: ڈیŲÛŒŲ†ÛŒØ´Ų† ŲšÛŒŲ…ŲžŲ„ÛŒŲš +status: Feedback Appreciated +``` + +### Category + +**Category** Ų„یبŲ„ Status Ų„یبŲ„ ÚŠÛ’ بؚد ØĸØĻے گا۔ اØŗ ÚŠÛŒ Ų‚Ø¯Øą Ø¯ØąØŦ ذیŲ„ اŲ‚Ø¯Ø§Øą Ų…ÛŒÚē Øŗے ایڊ ہŲˆŲ†ÛŒ چاہیے: + +- ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +- ØĩŲØĒ +- ØĒØĩŲˆØą + +```md +--- +title: ڈیŲÛŒŲ†ÛŒØ´Ų† ŲšÛŒŲ…ŲžŲ„ÛŒŲš +status: Feedback Appreciated +category: ØĒØĩŲˆØą +--- +``` + +### ØĒØšØąÛŒŲ + +#### ØĒیŲ† ذیŲ„ÛŒ ØšŲ†ŲˆØ§Ų†Ø§ØĒ + +**ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی** اŲˆØą **ØĒØĩŲˆØą** ÚŠÛ’ Ø˛Ų…ØąÛ’ ÚŠÛŒ ØĒØšØąÛŒŲÛŒÚē ØĒیŲ† ذیŲ„ÛŒ ØšŲ†ŲˆØ§Ų†Ø§ØĒ ŲžØą Ų…Ø´ØĒŲ…Ų„ ہیÚē: + +- **یہ ڊیا ہے**: ہŲ… ØŦØŗ ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē باØĒ ÚŠØą ØąÛÛ’ ہیÚē اØŗ ڊا ایڊ Ų…ØŽØĒØĩØą اŲˆØą ŲˆØ§ØļØ­ ØŦاØĻØ˛Û ŲØąØ§ÛŲ… ÚŠØąØĒا ہے۔ +- **یہ ÚŠŲˆŲ† Øŗا Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے۔**: Ų…ØŗØĻŲ„ہ ŲžØą ØĒŲˆØŦہ Ų…ØąÚŠŲˆØ˛ ÚŠØąØĒا ہے، Ø­Ų„ ŲžØą Ų†ÛÛŒÚē (ØŦŲˆ اگŲ„Û’ Ø­Øĩے Ų…ÛŒÚē ØĸØĒا ہے)۔ + Ø¯ØąØ­Ų‚ÛŒŲ‚ØĒ اØŗ اØĩØˇŲ„اح ڊا Ø°ÚŠØą ÚŠØąŲ†Û’ Øŗے Ú¯ØąÛŒØ˛ ÚŠØąÛŒÚē ØŦØŗ ÚŠÛŒ ØĒØšØąÛŒŲ ÚŠÛŒ Ú¯ØĻی ہے۔ Ų…ØŗØĻŲ„ہ اØŗ باØĒ ŲžØą Ų…ØąÚŠŲˆØ˛ ہے ڊہ *ÚŠØŗ Ú†ÛŒØ˛ ÚŠÛŒ ŲˆØŦہ Øŗے ہŲ…ÛŒÚē اØŗ Ú†ÛŒØ˛ ÚŠÛŒ ØļØąŲˆØąØĒ ŲžÚ‘ی۔ +- **یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے۔**: اب، Ø¨ØąØ§Û ÚŠØąŲ… اØĩØˇŲ„اح ŲžØą ŲˆØ§ŲžØŗ ØĸØĻیÚē۔ یہ اŲˆŲžØą بیاŲ† ÚŠØąØ¯Û Ų…ØŗØĻŲ„ہ ÚŠŲˆ ÚŠÛŒØŗے Ø­Ų„ ÚŠØąØĒا ہے؟ + +Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ **ØĩŲØĒ** ÚŠŲˆ اŲ„Ú¯ ØŗیڊشŲ†Ø˛ ÚŠÛŒ ØļØąŲˆØąØĒ Ų†ÛÛŒÚē ہے۔ ایڊ ØĒØšØąÛŒŲ ڊاŲÛŒ ہŲˆÚ¯ÛŒÛ” + +ØŦاØĻØ˛Û’ ÚŠÛŒ ØŗہŲˆŲ„ØĒ ÚŠÛ’ Ų„یے، Ø¨ØąØ§Û ÚŠØąŲ… **ØŗŲ…ÛŒŲ†ŲšÚŠ Ų„اØĻŲ† Ø¨ØąÛŒÚŠØŗ** (ایڊ ØŦŲ…Ų„ہ ŲÛŒ Ų„اØĻŲ†) اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē۔ + +#### Ų…ØšÛŒØ§Øą Øŗب Øŗے اہŲ… ہے + +Ø§Ú¯Øą اØŗے ØļŲ… ÚŠØą دیا ØŦاØĒا ہے، ØĒŲˆ ØĸŲž ڊا ØŦŲ…Øš ÚŠØąØąÛ ڊاŲ… اØŗ اØĩØˇŲ„اح ÚŠÛ’ Ų„یے ØŗØąÚŠØ§ØąÛŒ Øŗی ایŲ† Øŗی ایŲ ØĒØšØąÛŒŲ ہŲˆ گی (ØŦب ØĒÚŠ ڊہ ÚŠŲˆØĻی اŲˆØą اØŗے بہØĒØą Ų†Û ÚŠØą دے)۔Øŗی ایŲ† Øŗی ایŲ ÚŠÛ’ اؚŲ„ÛŒŲ° Ų…ØšÛŒØ§ØąØ§ØĒ ŲžØą ŲžŲˆØąØ§ اØĒØąŲ†Û’ ŲˆØ§Ų„ÛŒ اØĩØˇŲ„اح بŲ†Ø§Ų†Û’ Ų…ÛŒÚē ØŦŲ„دی Ų†ÛÛŒÚē ÚŠÛŒ ØŦا ØŗÚŠØĒی — Ų…ØšÛŒØ§Øą Ų…ÛŒÚē ŲˆŲ‚ØĒ اŲˆØą Ų…Ø­Ų†ØĒ Ø¯ØąÚŠØ§Øą ہŲˆØĒی ہے۔ + +**ØĒØ­Ų‚ÛŒŲ‚ ÚŠØąÛŒÚē۔**: یہاÚē ØĒÚŠ ڊہ Ø§Ú¯Øą ØĸŲž ÚŠŲˆ یŲ‚ÛŒŲ† ہے ڊہ ØĸŲž اØĩØˇŲ„اح ÚŠŲˆ ØŦاŲ†ØĒے ہیÚē، ØĒŲˆ ØĒØĩدیŲ‚ ÚŠØąÛŒÚē ڊہ ØĸŲž Ų†Û’ اØŗے Øĩحیح ØŗŲ…ØŦڞا۔ +ہŲ… اڊØĢØą ØĒŲ†Ø¸ÛŒŲ…ŲˆÚē Ų…ÛŒÚē اØĩØˇŲ„احاØĒ ÚŠŲˆ ایڊ ؎اØĩ ØˇØąÛŒŲ‚Û’ Øŗے اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē ØŦŲˆ شاید ŲžŲˆØąÛŒ ØĒØĩŲˆÛŒØą ÚŠÛŒ ؚڊاØŗی Ų†Û ÚŠØąÛ’Û” +ØŦب ØĸŲž اŲžŲ†ÛŒ ØĒØ­Ų‚ÛŒŲ‚ ÚŠØąØĒے ہیÚē، ؎اØĩ ØˇŲˆØą ŲžØą ØŦب ØĸŲž اØŗ اØĩØˇŲ„اح Øŗے 100% ŲˆØ§Ų‚Ų Ų†ÛÛŒÚē ہیÚē، Ų…ØĒؚدد ŲˆØŗاØĻŲ„ اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē۔ +بہØĒ Øŗی ØĒØšØąÛŒŲÛŒÚē یڊ ØˇØąŲÛ ہŲˆØĒی ہیÚē، ؎اØĩ ØˇŲˆØą ŲžØą Ø§Ú¯Øą ÚŠØŗی ŲˆÛŒŲ†ÚˆØą ÚŠÛŒ ØˇØąŲ Øŗے ŲØąØ§ÛŲ… ÚŠÛŒ Ú¯ØĻی ہŲˆÛ” +Ų„ØēØĒ Ų…ÛŒÚē ŲˆÛŒŲ†ÚˆØą ØēÛŒØą ØŦاŲ†Ø¨Ø¯Ø§ØąØŒ ؚاŲ„Ų…ÛŒ ØŗØˇØ­ ŲžØą Ų‚بŲˆŲ„ شدہ ØĒØšØąÛŒŲÛŒÚē ہŲˆŲ†ÛŒ چاہØĻیÚē۔ + +**Ų†Ų‚Ų„ Ų†Û ÚŠØąÛŒÚē۔**. ŲˆÛÛŒ اØĩŲˆŲ„ Ų„ØēØĒ ŲžØą Ų„اگŲˆ ہŲˆØĒے ہیÚē ØŦŲˆ ÚŠØŗی دŲˆØŗØąÛŒ ØŗŲ†ØŦیدہ اشاؚØĒ ŲžØą ہŲˆØĒے ہیÚē۔ +دŲˆØŗØąÛ’ Ų„ŲˆÚ¯ŲˆÚē ÚŠÛ’ ڊاŲ… ÚŠŲˆ اØŗ ŲˆŲ‚ØĒ ØĒÚŠ ڊاŲžÛŒ اŲˆØą ŲžÛŒØŗŲš Ų†Û ÚŠØąÛŒÚē ØŦب ØĒÚŠ ڊہ ØĸŲž اØŗ ڊا Ø­ŲˆØ§Ų„ہ اŲˆØą ØĒؚاŲˆŲ† Ų†Û ÚŠØą ØąÛÛ’ ہŲˆÚē۔ +Ø§Ú¯Øą ØĸŲž ÚŠŲˆ ØĒØšØąÛŒŲ ڊا ÚŠŲˆØĻی ؎اØĩ Ø­Øĩہ ŲžØŗŲ†Ø¯ ہے ØĒŲˆ اØŗے اŲžŲ†Û’ اŲ„ŲØ§Ø¸ Ų…ÛŒÚē بیاŲ† ÚŠØąÛŒÚē۔ + +**Ų…ØŗØĒŲ†Ø¯ ŲˆØŗاØĻŲ„ ڊا Ø­ŲˆØ§Ų„ہ دیÚē۔** ØŦب Ų…Ų…ÚŠŲ† ہŲˆØŒ Ų…ØŗØĒŲ†Ø¯ ŲˆØŗاØĻŲ„ Øŗے Ų„Ų†ÚŠ ÚŠØąÛŒÚē ØŦیØŗے ŲžØąŲˆØŦیڊŲš دØŗØĒاŲˆÛŒØ˛Ø§ØĒ۔ +Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ ہŲ… ŲˆÛŒŲ†ÚˆØąØ˛ ÚŠÛ’ ØĒÛŒØ§Øą ÚŠØąØ¯Û Ų…ŲˆØ§Ø¯ Øŗے Ų„Ų†ÚŠ Ų†ÛÛŒÚē ÚŠØą ØŗÚŠØĒے۔ + +#### اØŗے Øŗادہ ØąÚŠÚžŲ†Ø§ + +Ų„ØēØĒ ڊا Ų…Ų‚Øĩد **ŲžÛŒÚ†ÛŒØ¯Û ØĒØĩŲˆØąØ§ØĒ ÚŠŲˆ ØĸØŗاŲ† اŲ„ŲØ§Ø¸ Ų…ÛŒÚē بیاŲ† ÚŠØąŲ†Ø§** — یہ ایڊ Ø­ÛŒØąØĒ اŲ†Ú¯ÛŒØ˛ ØˇŲˆØą ŲžØą Ų…Ø´ÚŠŲ„ ڊاŲ… ہے ØŦØŗ Ų…ÛŒÚē Ų…Ų…ÚŠŲ†Û ØˇŲˆØą ŲžØą Ų…ØĒؚدد Ų†Ø¸ØąØĢاŲ†ÛŒ ÚŠÛŒ ØļØąŲˆØąØĒ ہŲˆÚ¯ÛŒÛ” +اŲžŲ†ÛŒ ØĒØšØąÛŒŲ ڊا Ų…ØŗŲˆØ¯Û ØĒÛŒØ§Øą ÚŠØąØĒے ŲˆŲ‚ØĒ ØŗاŲ…ØšÛŒŲ† ÚŠŲˆ ہŲ…یشہ ذہŲ† Ų…ÛŒÚē ØąÚŠÚžÛŒÚē۔ +ØĩŲ†ØšØĒ ÚŠÛŒ اØĩØˇŲ„احاØĒ اŲˆØą Ø¨Ø˛ ŲˆØąÚˆØ˛ اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Û’ Øŗے Ú¯ØąÛŒØ˛ ÚŠØąÛŒÚē — ØĸŲž شاید ØŽŲˆØ¯ ÚŠŲˆ اŲ† ÚŠÛŒ ØˇØąŲ ŲˆØ§ŲžØŗ ØŦاØĒے ہŲˆØĻے ŲžÚŠÚ‘ Ų„ÛŒÚē گے اŲˆØą ØĸŲž ÚŠŲˆ ØŽŲˆØ¯ ب؎ŲˆØ¯ Ø¯ØąØŗØĒ ÚŠØąŲ†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ ŲžÚ‘ ØŗÚŠØĒی ہے۔ + +ØŦب Ų…Ų†Ø§Øŗب ہŲˆØŒ **Ø­Ų‚ÛŒŲ‚ÛŒ دŲ†ÛŒØ§ ÚŠÛŒ Ų…ØĢاŲ„ÛŒÚē** اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē ØŦŲˆ Ų‚Ø§ØąØĻیŲ† (؎اØĩ ØˇŲˆØą ŲžØą ØēÛŒØą ØĒÚŠŲ†ÛŒÚŠÛŒ) ÚŠŲˆ بہØĒØą ØˇŲˆØą ŲžØą ØŗŲ…ØŦÚžŲ†Û’ Ų…ÛŒÚē Ų…دد ÚŠØąØĒی ہیÚē ڊہ ØĸŲž ØŦØŗ ØĒØĩŲˆØą ÚŠÛŒ ŲˆØļاحØĒ ÚŠØą ØąÛÛ’ ہیÚē ŲˆÛ *ڊب* اŲˆØą *ÚŠÛŒŲˆÚē* Ų…ØĒØšŲ„Ų‚ہ ہے۔ + +ØŦب ØĸŲž اØŗے اŲžŲ†ÛŒ ØĒØšØąÛŒŲ Ų…ÛŒÚē اØŗØĒØšŲ…اŲ„ ÚŠØąØĒے ہیÚē ØĒŲˆ ہŲ…یشہ **Ų…ŲˆØŦŲˆØ¯Û Ų„ØēØĒ ÚŠÛŒ اØĩØˇŲ„احاØĒ Øŗے Ų„Ų†ÚŠ ÚŠØąÛŒÚē** (ØĩØąŲ ŲžÛŲ„ا Ø°ÚŠØą ہاØĻŲžØą Ų„Ų†ÚŠ ہŲˆŲ†Ø§ چاہیے)۔ + +**Ų…ØĢاŲ„**: ÚŠÛ’ "یہ ڊیا ہے" ØŗیڊشŲ† ŲžØą ایڊ Ų†Ø¸Øą ڈاŲ„ÛŒÚē [ØŗØąŲˆØŗ Ų…یش ØĒØšØąÛŒŲ](/service-mesh/). +یہ Ų…اØĻÛŒÚŠØąŲˆ ØŗØąŲˆØŗØ˛ØŒ ØŗØąŲˆØŗ، اؚØĒØ¨Ø§ØąØŒ اŲˆØą Ų…شاہداØĒی ØĒØšØąÛŒŲŲˆÚē Øŗے Ų…Ų†ØŗŲ„ÚŠ ہے۔ +Ų…Ø˛ÛŒØ¯ Ø¨ØąØĸÚē، یہ Ų…اØĻÛŒÚŠØąŲˆ ØŗØąŲˆØŗØ˛ Ų…احŲˆŲ„ Ų…ÛŒÚē Ų†ÛŒŲš ŲˆØąÚŠ ÚŠÛ’ چیŲ„Ų†ØŦØ˛ ڊا Ų…ŲˆØ§Ø˛Ų†Û ÚŠØąŲ†Û’ ŲˆØ§Ų„ÛŒ ایڊ Ø­Ų‚ÛŒŲ‚ÛŒ دŲ†ÛŒØ§ ÚŠÛŒ Ų…ØĢاŲ„ اØŗØĒØšŲ…اŲ„ ÚŠØąØĒا ہے (ایØŗی Ú†ÛŒØ˛ ØŦØŗ Øŗے ØēÛŒØą ØĒÚŠŲ†ÛŒÚŠÛŒ Ų„ŲˆÚ¯ ØĒØšŲ„Ų‚ Ų†ÛÛŒÚē ØąÚŠÚž ØŗÚŠØĒے) +ŲˆØ§ØĻی ​​ŲØ§ØĻی ÚŠÛ’ Ų…ØŗاØĻŲ„ ÚŠÛ’ Ų„یے (کچھ ایØŗی Ú†ÛŒØ˛ ØŦŲˆ Ų„ÛŒŲž ŲšØ§Ųž اØŗØĒØšŲ…اŲ„ ÚŠØąŲ†Û’ ŲˆØ§Ų„ا ØŗŲ…ØŦÚž ØŗÚŠØĒا ہے)۔ +ØŦہاÚē Ų…Ų…ÚŠŲ† ہŲˆØŒ اØŗ ØĒØšŲ„Ų‚ ÚŠŲˆ بŲ†Ø§Ų†Û’ ÚŠÛŒ ÚŠŲˆØ´Ø´ ÚŠØąÛŒÚē۔ + +#### Google یا Word دØŗØĒاŲˆÛŒØ˛ Øŗے Ø´ØąŲˆØš ÚŠØąÛŒÚē + +ہŲ… ØĒØŦŲˆÛŒØ˛ ÚŠØąØĒے ہیÚē ڊہ Google یا Word دØŗØĒاŲˆÛŒØ˛ ÚŠÛ’ ØŗاØĒÚž Ø´ØąŲˆØš ÚŠØąÛŒÚē، اØŗے کچھ دŲ† بیŲšÚžŲ†Û’ دیÚē، اŲˆØą دŲˆØ¨Ø§ØąÛ Ų…Ų„احظہ ÚŠØąÛŒÚē۔ +یہ ØĸŲž ÚŠŲˆ ایØŗے ØŦŲ…Ų„Û’ یا ØĒاØĢØąØ§ØĒ ÚŠŲˆ ŲžÚŠÚ‘Ų†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دے گا ØŦŲˆ ØĸØŗاŲ† اŲˆØą Ø˛ÛŒØ§Ø¯Û Ų‚ابŲ„ ØąØŗاØĻی ØˇØąÛŒŲ‚Û’ Øŗے ڊہے ØŦا ØŗÚŠØĒے ہیÚē۔ +اØŗ ÚŠÛ’ ØšŲ„اŲˆÛØŒ ŲžØąŲˆØŦیڊŲš ØŦŲ…Øš ÚŠØąØ§Ų†Û’ Øŗے ŲžÛŲ„Û’ اØŗŲžÛŒŲ„ چیڊ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē۔ + +اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§Ų†Û’ ÚŠÛ’ Ų„یے ڊہ ÚŠØŗی ŲšØąŲ… ŲžØą ڊاŲ… ÚŠØąØĒے ہŲˆØĻے ÚŠŲˆØĻی اŲˆØą PR ØŦŲ…Øš Ų†Û ÚŠØąØ§ØĻے، اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻیÚē ڊہ ÚŠØŗی Ų…ØŗØĻŲ„Û’ ڊا دؚŲˆÛŒ ÚŠØąÛŒÚē (یا ایڊ بŲ†Ø§ØĻیÚē) اŲˆØą یہ ØĸŲž ÚŠŲˆ ØĒŲŲˆÛŒØļ ڊیا گیا ہے۔ +اØŗ Ų…ÛŒÚē Ų…Ø˛ÛŒØ¯ [ÚŠØŗ ØˇØąØ­ Ø´ØąØ§ÚŠØĒ ÚŠØąŲ†Ø§ ہے](/contribute/)دØŗØĒاŲˆÛŒØ˛Û” + +Ø´ØąŲˆØš ÚŠØąŲ†Û’ Øŗے ŲžÛŲ„Û’ØŒ Ø¨ØąØ§Û ÚŠØąŲ… شاØĻØš شدہ Ų„ØēØĒ ÚŠÛŒ کچھ اØĩØˇŲ„احاØĒ ŲžÚ‘ÚžÛŒÚē +ØĒŲØĩیŲ„ اŲˆØą Ų…Ø´ÚŠŲ„ ÚŠÛŒ ØŗØˇØ­ ڊا احØŗاØŗ حاØĩŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے اŲˆØą ØŦب Ų…ØĢاŲ„ÛŒÚē Ų…Ų†Ø§Øŗب ہŲˆÚē۔ + +## ØŦاØĻØ˛Û Ų„ÛŒŲ†Û’ ڊا ØšŲ…Ų„: ڊیا ØĒŲˆŲ‚Øš ÚŠÛŒ ØŦاØĻے + +Ø¨ØąØ§Û ÚŠØąŲ… Ų†ŲˆŲš ÚŠØąÛŒÚē ڊہ ہŲ… اØŗ ŲˆŲ‚ØĒ ØĩØąŲ ØĒیŲ† Ų…ÛŒŲ†ŲšÛŒŲ†ØąØ˛ ہیÚē ØŦŲˆ اŲžŲ†Û’ ŲØ§ØąØē ŲˆŲ‚ØĒ Ų…ÛŒÚē یہ ڊاŲ… ÚŠØą ØąÛÛ’ ہیÚē۔ +ڊبڞی ÚŠØ¨ÚžØ§ØąØŒ ہŲ… Ø´ØąØ§ØĻØˇ ڊا ŲŲˆØąÛŒ ØŦاØĻØ˛Û Ų„ÛŒŲ†Û’ ÚŠÛ’ Ų‚ابŲ„ ہŲˆ ØŦاØĻیÚē گے۔ دŲˆØŗØąÛ’ Ų…ŲˆØ§Ų‚Øš ŲžØąØŒ اØŗ Ų…ÛŒÚē کچھ ŲˆŲ‚ØĒ Ų„Ú¯ ØŗÚŠØĒا ہے — ہŲ… ØĸŲž ÚŠÛ’ ØĩØ¨Øą ÚŠÛŒ ØĒØšØąÛŒŲ ÚŠØąØĒے ہیÚē۔ +Ø§Ú¯ØąØĸŲž ÚŠÛ’ ÚŠŲˆØĻی ØŗŲˆØ§Ų„اØĒ ہیÚē، ØĒŲˆ Ø¨ØąØ§Û ÚŠØąŲ… glossary# ØŗŲ„یڊ چیŲ†Ų„ Ų…ÛŒÚē ہŲ… Øŗے ØąØ§Ø¨ØˇÛ ÚŠØąÛŒÚē۔ +(اØŗے ڊہاÚē اŲˆØą ÚŠÛŒØŗے ØĒŲ„اش ÚŠØąŲ†Ø§ ہے، Ø¨ØąØ§Û ÚŠØąŲ… ہŲ… Øŗے ØąØŦŲˆØš ÚŠØąÛŒÚē [ÚŠØŗ ØˇØąØ­ Ø´ØąØ§ÚŠØĒ ÚŠØąŲ†Ø§ ہے](/contribute/) دØŗØĒاŲˆÛŒØ˛)۔ + +ہŲ…Ø§ØąØ§ Ų…Ų‚Øĩد Ų„ØēØĒ ÚŠŲˆ بہØĒØąÛŒŲ† Ų…Ų…ÚŠŲ†Û ŲˆØŗیŲ„ہ بŲ†Ø§Ų†Ø§ ہے۔ +ایڊ Ø¨Ø§Øą ØŦب ØĸŲž ŲžÛŒ ØĸØą ØŦŲ…Øš ÚŠØąØ§ØĒے ہیÚē، ØĒŲˆ ہŲ… ایڊ یا Ø˛ÛŒØ§Ø¯Û Ų†Ø¸ØąØĢاŲ†ÛŒ ÚŠÛ’ Ų„یے ڊہہ ØŗÚŠØĒے ہیÚē۔ +Ų…ایŲˆØŗ Ų†Û ہŲˆÚē - یہ بہØĒ Øŗے ŲžÛŒ ØĸØąØ˛ ڊا Ų…ؚاŲ…Ų„ہ ہے۔ +ŲˆÛ Øĸگے ŲžÛŒÚ†ÚžÛ’ اŲˆØą ہŲ…Ø§ØąØ§ ØĒؚاŲˆŲ† اØŗ باØĒ ÚŠŲˆ یŲ‚ÛŒŲ†ÛŒ بŲ†Ø§ØĻے گا ڊہ ØĸŲž ڊا ØĒؚاŲˆŲ† ŲˆØ§Ų‚ØšÛŒ ایڊ Ų…ŲÛŒØ¯ ØĒØšØąÛŒŲ بŲ† ØŦاØĻے ØŦØŗے ŲžŲˆØąÛŒ دŲ†ÛŒØ§ ÚŠÛ’ Ų‚Ø§ØąØĻیŲ† ŲžÚ‘ÚžØĒے اŲˆØą Ø­ŲˆØ§Ų„ہ دیØĒے ØąÛÛŒÚē۔ diff --git a/content/ur/virtual-machine.md b/content/ur/virtual-machine.md new file mode 100644 index 0000000000..9990da2a35 --- /dev/null +++ b/content/ur/virtual-machine.md @@ -0,0 +1,22 @@ +--- +title: ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†(Virtual Machine) +status: Completed +category: ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +tags: ["بŲ†ÛŒØ§Ø¯ÛŒ", "بŲ†ÛŒØ§Ø¯ÛŒ ڈڞاŲ†Ú†Û", ""] +--- + +## یہ ڊیا ہے + +ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ† (VM) ایڊ ÚŠŲ…ŲžÛŒŲˆŲšØą اŲˆØą اØŗ ڊا ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ہے ØŦŲˆ ÛØ§ØąÚˆ ŲˆÛŒØĻØą ÚŠÛ’ ÚŠØŗی ؎اØĩ ŲšÚŠÚ‘Û’ ڊا ŲžØ§Ø¨Ų†Ø¯ Ų†ÛÛŒÚē ہے۔ VMs ایڊ ہی ØŦØŗŲ…اŲ†ÛŒ ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠŲˆ Ų…ØĒؚدد ŲˆØąÚ†ŲˆØĻŲ„ ÚŠŲ…ŲžÛŒŲˆŲšØąØ˛ Ų…ÛŒÚē ØĒŲ‚ØŗیŲ… ÚŠÛ’ Ų„یے [ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų†](/virtualization/) ŲžØą اŲ†Ø­ØĩØ§Øą ÚŠØąØĒی ہیÚē۔ یہ ØšŲ„یحدگی ØĒŲ†Ø¸ÛŒŲ…ŲˆÚē اŲˆØą اŲ†ŲØąØ§ØŗŲšØąÚŠÚ†Øą ŲØąØ§ÛŲ… ÚŠØąŲ†Û’ ŲˆØ§Ų„ŲˆÚē ÚŠŲˆ بŲ†ÛŒØ§Ø¯ÛŒ ÛØ§ØąÚˆ ŲˆÛŒØĻØą ÚŠŲˆ Ų…ØĒاØĢØą ڊیے بØēÛŒØą ØĸØŗاŲ†ÛŒ Øŗے VMs بŲ†Ø§Ų†Û’ اŲˆØą ØŽØĒŲ… ÚŠØąŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒی ہے۔ + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†ÛŒÚē، ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų† ڊا ŲØ§ØĻدہ اŲšÚžØ§ØĒی ہیÚē۔ ØŦب ایڊ [بŲ”ÛŒØą Ų…ÛŒŲšŲ„](/bare-metal-machine/) Ų…Ø´ÛŒŲ† ایڊ ہی ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… Øŗے Ų…Ų†ØŗŲ„ÚŠ ہŲˆØĒی ہے، ØĒŲˆ Ų…Ø´ÛŒŲ† ÚŠÛ’ ŲˆØŗاØĻŲ„ ÚŠŲˆ ایڊ Ų…ØŽØĩŲˆØĩ حد ØĒÚŠ اØŗØĒØšŲ…اŲ„ ڊیا ØŦا ØŗÚŠØĒا ہے۔ اØŗ ÚŠÛ’ ØšŲ„اŲˆÛØŒ ØŦب ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… ÚŠØŗی ایڊ ØŦØŗŲ…اŲ†ÛŒ Ų…Ø´ÛŒŲ† Øŗے Ų…Ų†ØŗŲ„ÚŠ ہŲˆØĒا ہے، ØĒŲˆ اØŗ ÚŠÛŒ دØŗØĒیابی Ø¨ØąØ§Û ØąØ§ØŗØĒ اØŗ ÛØ§ØąÚˆ ŲˆÛŒØĻØą Øŗے Ų…Ų†ØŗŲ„ÚŠ ہŲˆØĒی ہے۔ Ø§Ú¯Øą ŲØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† دیڊڞ بڞاŲ„ یا ÛØ§ØąÚˆŲˆÛŒØĻØą ÚŠÛŒ Ų†Ø§ÚŠØ§Ų…ÛŒ ÚŠÛŒ ŲˆØŦہ Øŗے ØĸŲ Ų„اØĻŲ† ہے، ØĒŲˆ ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… بڞی ØĸŲ Ų„اØĻŲ† ØąÛÛ’ گا۔ + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… اŲˆØą ایڊ ØŦØŗŲ…اŲ†ÛŒ Ų…Ø´ÛŒŲ† ÚŠÛ’ Ø¯ØąŲ…یاŲ† Ø¨ØąØ§Û ØąØ§ØŗØĒ ØĒØšŲ„Ų‚ ÚŠŲˆ ہŲšØ§ ÚŠØąØŒ +ØĸŲž بŲ”ÛŒØą Ų…ÛŒŲšŲ„ Ų…Ø´ÛŒŲ† Ų…Ø´ÛŒŲ†ŲˆÚē ÚŠÛ’ ÚŠØĻی Ų…ØŗاØĻŲ„ Ø­Ų„ ÚŠØąØĒے ہیÚē، ØŦیØŗے ڊہ: +ŲØąØ§ÛŲ…ÛŒ ڊا ŲˆŲ‚ØĒ، ÛØ§ØąÚˆ ŲˆÛŒØĻØą ڊا اØŗØĒØšŲ…اŲ„ØŒ اŲˆØą Ų‚ابŲ„ÛŒØĒŲ Ø¨ØąÚ¯Ø´ØĒ + + اØŗ ÚŠÛŒ Ø­Ų…اØĻØĒ ÚŠÛ’ Ų„ØĻے، ÚŠŲˆØĻی Ų†ÛŒØ§ ÛØ§ØąÚˆŲˆÛŒØĻØą ØŽØąÛŒØ¯Ų†Û’ØŒ اŲ†ØŗŲšØ§Ų„ ÚŠØąŲ†Û’ یا ØĒØąØĒیب دیŲ†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ Ų†ÛÛŒÚē ہے، Ų†ØĻے ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠÛŒ ŲØąØ§ÛŲ…ÛŒ ڊا ŲˆŲ‚ØĒ Ø˛ÛŒØ§Ø¯Û بہØĒØą ہŲˆØĒا ہے۔ ØĸŲž ایڊ ŲÛŒØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† ŲžØą Ų…ØŽØĒŲ„Ų ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†Ø˛ ÚŠŲˆ ØąÚŠÚž ÚŠØą اŲžŲ†ÛŒ Ų…ŲˆØŦŲˆØ¯Û ŲÛŒØ˛ÛŒÚŠŲ„ ÛØ§ØąÚˆŲˆÛŒØĻØą ŲˆØŗاØĻŲ„ ڊا بہØĒØą اØŗØĒØšŲ…اŲ„ ÚŠØąØŗÚŠØĒے ہیÚē ۔VMs ÚŠŲˆ ÚŠØŗی ؎اØĩ ŲÛŒØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† Øŗے باŲ†Ø¯ÚžØ§ Ų†ÛÛŒÚē ØŦاØĒا، VMs ŲÛŒØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ†ŲˆÚē Øŗے بڞی Ų…Ø˛ÛŒØ¯ Ų…ØŗØĒØ­ÚŠŲ… ہŲˆØĒی ہیÚē۔ ØŦب ÚŠØŗی ŲÛŒØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† ÚŠŲˆ ØĸŲ Ų„اØĻŲ† ہŲˆŲ†Û’ ÚŠÛŒ ØļØąŲˆØąØĒ Ø¯ØąÚŠØ§Øą ہŲˆØĒی ہے ØĒŲˆ اØŗ ŲžØą چŲ„ ØąÛÛ’ VMs ÚŠŲˆ ÚŠŲ… ŲˆŲ‚ØĒ Ų…ÛŒÚē دŲˆØŗØąÛŒ Ų…Ø´ÛŒŲ† ŲžØą Ų…Ų†ØĒŲ‚Ų„ ڊیا ØŦاØŗÚŠØĒا ہے، ØŦØŗ Ų…ÛŒÚē ÚŠŲ… Øŗے ÚŠŲ… ڈاؤŲ† ŲšØ§ØĻŲ… Ø¯ØąÚŠØ§Øą ہŲˆØĒا ہے۔ diff --git a/content/ur/virtualization.md b/content/ur/virtualization.md new file mode 100644 index 0000000000..25df307e90 --- /dev/null +++ b/content/ur/virtualization.md @@ -0,0 +1,20 @@ +--- +title: ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų†(Virtualization) +status: completed +category: ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی +tags: ["بŲ†ÛŒØ§Ø¯ÛŒ", "بŲ†ÛŒØ§Ø¯ÛŒ ڈڞاŲ†Ú†Û", "ØˇØąÛŒŲ‚ہ ÚŠØ§Øą"] +--- + +## یہ ڊیا ہے + +ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų†ØŒ ÚŠŲ„اؤڈ Ų†ÛŒŲšŲˆ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯ ÚŠÛ’ ØĒŲ†Ø§Ø¸Øą Ų…ÛŒÚē، ŲØ˛ÛŒÚŠŲ„ ÚŠŲ…ŲžÛŒŲˆŲšØą Ų„ÛŒŲ†Û’ ÚŠÛ’ ØšŲ…Ų„ Øŗے Ų…ØąØ§Ø¯ ہے، ØŦØŗے ڊبڞی ڊبڞی ØŗØąŲˆØą ڊہا ØŦاØĒا ہے، اŲˆØą اØŗے ایڊ Øŗے Ø˛ÛŒØ§Ø¯Û اŲ„Ú¯ ØĒÚžŲ„Ú¯ ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… چŲ„اŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دیØĒا ہے۔ ŲˆÛ اŲ„Ú¯ ØĒÚžŲ„Ú¯ ØĸŲžØąÛŒŲšŲ†Ú¯ ØŗØŗŲšŲ… اŲˆØą اŲ† ÚŠÛ’ ŲˆŲ‚Ų شدہ ÚŠŲ…ŲžÛŒŲˆŲš ŲˆØŗاØĻŲ„ (Øŗی ŲžÛŒ یŲˆØŒ Ų…ÛŒŲ…ŲˆØąÛŒØŒ اŲˆØą Ų†ÛŒŲš ŲˆØąÚŠ) ÚŠŲˆ ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†ÛŒÚē یا ŲˆÛŒ ایŲ…Ø˛ ڊہا ØŦاØĒا ہے۔ ØŦب ہŲ… [ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†](/virtual-machine/) ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē باØĒ ÚŠØąØĒے ہیÚē، ØĒŲˆ ہŲ… ØŗاŲŲš ŲˆÛŒØĻØą Øŗے ØˇÛ’ شدہ ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē باØĒ ÚŠØą ØąÛÛ’ ہŲˆØĒے ہیÚē۔ ÚŠŲˆØĻی ایØŗی Ú†ÛŒØ˛ ØŦŲˆ اØĩŲ„ÛŒ ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠÛŒ ØˇØąØ­ Ų†Ø¸Øą ØĸØĒی ہے اŲˆØą ڊاŲ… ÚŠØąØĒی ہے Ų„یڊŲ† دŲˆØŗØąÛŒ ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†ŲˆÚē ÚŠÛ’ ØŗاØĒÚž ÛØ§ØąÚˆ ŲˆÛŒØĻØą ڊا باہŲ…ÛŒ اØŗØĒØšŲ…اŲ„ ÚŠØą ØąÛÛŒ ہے۔ +[ÚŠŲ„اؤڈ ÚŠŲ…ŲžÛŒŲˆŲšŲ†Ú¯](/cloud-computing/) بŲ†ÛŒØ§Ø¯ÛŒ ØˇŲˆØą ŲžØą ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų† ŲšÛŒÚŠŲ†Ø§Ų„ŲˆØŦی Øŗے چŲ„ØĒی ہے۔ Ų…ØĢاŲ„ ÚŠÛ’ ØˇŲˆØą ŲžØąØŒ ØĸŲž اےڈبŲ„ÛŒŲˆØ§ÛŒØŗ Øŗے ایڊ "ÚŠŲ…ŲžÛŒŲˆŲšØą" Ų„ÛŒØ˛ ŲžØą Ų„Û’ ØŗÚŠØĒے ہیÚē - ŲˆÛ ÚŠŲ…ŲžÛŒŲˆŲšØą Ø¯ØąØ§ØĩŲ„ ایڊ ŲˆÛŒ ایŲ… ہے۔ + + +## یہ ÚŠŲŠØ§ Ų…ØŗØĻŲ„ہ Ø­Ų„ ÚŠØąØĒا ہے + +ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų† بہØĒ Øŗے Ų…ØŗاØĻŲ„ ÚŠŲˆ Ø­Ų„ ÚŠØąØĒی ہے، بشŲ…ŲˆŲ„ ŲØ˛ÛŒÚŠŲ„ ÛØ§ØąÚˆŲˆÛŒØĻØą ÚŠÛ’ اØŗØĒØšŲ…اŲ„ Ų…ÛŒÚē بہØĒØąÛŒ Ų„ا ÚŠØąØŒ ایڊ ہی ŲØ˛ÛŒÚŠŲ„ Ų…Ø´ÛŒŲ† ŲžØą Ų…Ø˛ÛŒØ¯ ایŲžØŗ ÚŠŲˆ چŲ„اŲ†Û’ ÚŠÛŒ اØŦØ§Ø˛ØĒ دے ÚŠØą ØŦب ڊہ ØŗیڊیŲˆØąŲšÛŒ ÚŠÛ’ Ų„یے ایڊ دŲˆØŗØąÛ’ Øŗے اŲ„Ú¯ ØĒÚžŲ„Ú¯ ØąÚŠÚž ÚŠØąÛ” + +## یہ ÚŠØŗ ØˇØąØ­ Ų…دد ÚŠØąØĒا ہے + +ŲˆØąÚ†ŲˆØĻŲ„ Ų…Ø´ÛŒŲ†ŲˆÚē ŲžØą چŲ„Ų†Û’ ŲˆØ§Ų„ÛŒ ایŲžØŗ ÚŠŲˆ اØŗ باØĒ Øŗے ÚŠŲˆØĻی Øĸگاہی Ų†ÛÛŒÚē ہŲˆØĒی ڊہ ŲˆÛ ÚŠØŗی ŲØ˛ÛŒÚŠŲ„ ÚŠŲ…ŲžÛŒŲˆŲšØą ÚŠŲˆ شیØĻØą ÚŠØą ØąÛÛŒ ہیÚē۔ ŲˆØąÚ†ŲˆØĻŲ„اØĻØ˛ÛŒØ´Ų† ڈیŲšØ§ ØŗیŲ†ŲšØą ÚŠÛ’ ØĩØ§ØąŲÛŒŲ† ÚŠŲˆ ڈیŲšØ§ ØŗیŲ†ŲšØą Ų…ÛŒÚē Ų†ÛŒØ§ ÚŠŲ…ŲžÛŒŲˆŲšØą شاŲ…Ų„ ÚŠØąŲ†Û’ ÚŠÛŒ ØŦØŗŲ…اŲ†ÛŒ ØąÚŠØ§ŲˆŲšŲˆÚē ÚŠÛ’ Ø¨Ø§ØąÛ’ Ų…ÛŒÚē ŲÚŠØą ڊیے بØēÛŒØą Ų…Ų†ŲšŲˆÚē Ų…ÛŒÚē ایڊ Ų†ÛŒØ§ "ÚŠŲ…ŲžÛŒŲˆŲšØą" (ØšØąŲ ایڊ ŲˆÛŒ ایŲ…) بŲ†Ø§Ų†Û’ ÚŠÛŒ بڞی اØŦØ§Ø˛ØĒ دیØĒی ہے۔ ŲˆÛŒ ایŲ…Ø˛ ØĩØ§ØąŲÛŒŲ† ÚŠŲˆ ØŦŲ„د Ø§Ø˛ ØŦŲ„د ایڊ Ų†ÛŒØ§ ŲˆØąÚ†ŲˆØĻŲ„ ÚŠŲ…ŲžÛŒŲˆŲšØą حاØĩŲ„ ÚŠØąŲ†Û’ ÚŠÛ’ Ų‚ابŲ„ بŲ†Ø§ØĒی ہیÚē۔ diff --git a/content/zh-cn/containerization.md b/content/zh-cn/containerization.md index b3a5660b07..d33d08820f 100644 --- a/content/zh-cn/containerization.md +++ b/content/zh-cn/containerization.md @@ -7,7 +7,7 @@ tags: ["åē”į”¨į¨‹åē", "", ""] ## 是äģ€äšˆ -厚器化是将一ä¸Ēåē”į”¨į¨‹åēåŠå…ļ䞝čĩ–å…ŗįŗģ捆įģ‘到 [厚器镜像](/zh-cn/container-image/) 中įš„čŋ‡į¨‹ã€‚ +厚器化是将一ä¸Ēåē”į”¨į¨‹åēåŠå…ļ䞝čĩ–å…ŗįŗģ捆įģ‘到 厚器镜像中įš„čŋ‡į¨‹ã€‚ 厚器构åģēčŋ‡į¨‹éœ€čĻéĩ厈 [åŧ€æ”žåŽšå™¨å€ĄčŽŽ](https://opencontainers.org)(OCI) 标准。 åĒčĻčž“å‡ēįš„是一ä¸ĒįŦĻ合čŋ™ä¸Ē标准įš„厚器镜像īŧŒäŊŋį”¨å“Ēį§åŽšå™¨åŒ–åˇĨå…ˇåšļ不重čĻã€‚ diff --git a/content/zh-cn/stateful-apps.md b/content/zh-cn/stateful-apps.md index ee04c5d73e..43824a3d6d 100644 --- a/content/zh-cn/stateful-apps.md +++ b/content/zh-cn/stateful-apps.md @@ -7,7 +7,7 @@ tags: ["åŸēæœŦ原į†", "", ""] ## 是äģ€äšˆ -åŊ“我äģŦč¯´åˆ°æœ‰įŠļ态īŧˆå’Œ[无įŠļ态](/zh-cn/stateless-apps/)īŧ‰åē”į”¨æ—ļīŧŒ +åŊ“我äģŦč¯´åˆ°æœ‰įŠļ态īŧˆå’Œæ— įŠļ态īŧ‰åē”į”¨æ—ļīŧŒ įŠļ态是指åē”į”¨éœ€čĻå­˜å‚¨äģĨäžŋå…ļæŒ‰čŽžčŽĄčŋčĄŒįš„äģģäŊ•æ•°æŽã€‚ 例åĻ‚īŧŒäģģäŊ•čƒŊ莰äŊæ‚¨č´­į‰ŠčŊĻįš„在įēŋ商åē—éƒŊ是有įŠļ态åē”į”¨ã€‚ diff --git a/content/zh-tw/_index.md b/content/zh-tw/_index.md new file mode 100644 index 0000000000..dec8ba3035 --- /dev/null +++ b/content/zh-tw/_index.md @@ -0,0 +1,59 @@ +--- +title: "雲įĢ¯åŽŸį”Ÿ Glossary" +status: Completed +--- + +# 雲įĢ¯åŽŸį”Ÿ Glossary {#cloud-native-glossary} + +雲įĢ¯åŽŸį”Ÿ Glossary ä¸ģčĻį›Žæ¨™åœ¨äŊŋäēē們更厚易į†č§ŖīŧŒå°‡äģĨč¤‡é›œč€Œčžåé›˛įĢ¯åŽŸį”Ÿé ˜åŸŸčŽŠåž—æ›´į°Ąå–ŽåĨŊ懂īŧŒä¸åƒ…限æ–ŧæŠ€čĄ“äēēåŖĢīŧŒäšŸåŒæ¨Ŗ遊į”¨æ–ŧ商æĨ­äēēåŖĢ。 +į‚ēäē†å¯Ļįžé€™ä¸€į›Žæ¨™īŧŒæˆ‘們æŗ¨é‡į°ĄæŊ”īŧˆäž‹åĻ‚īŧšäŊŋį”¨į°Ąå–Žį”¨čĒžæčŋ°ä¸”不包åĢæĩčĄŒį”¨čĒžã€äŊŋį”¨äģģäŊ•æŠ€čĄ“įš„äēēéƒŊ可äģĨ通į”¨įš„į¯„䞋、įœį•Ĩ不åŋ…čĻįš„į´°į¯€īŧ‰ã€‚ +Glossary 是į”ą CNCF 商æĨ­åƒšå€ŧ小įĩ„īŧˆBusiness Value Subcommittee; BVSīŧ‰é ˜å°Žįš„å°ˆæĄˆã€‚ + +

People watching a Kubecon presentation

+ +## č˛ĸįģ {#contributing} + +æ­ĄčŋŽæ‰€æœ‰äēēå°é›˛įĢ¯åŽŸį”Ÿ Glossary 提å‡ē更攚、čŖœå……å’Œæ”šé€˛ã€‚ +æˆ‘å€‘æŽĄį”¨į”ą CNCF įŽĄį†įš„į¤žįž¤éŠ…å‹•įš„æĩį¨‹äž†é–‹į™ŧå’Œæ”šé€˛é€™å€‹å…ąäēĢ Glossary 。 +Glossary 提䞛äē†ä¸€å€‹æ‰€æœ‰åƒčˆ‡č€…äŊŋį”¨ä¸”䞛應商äŋæŒä¸­įĢ‹įš„åšŗ台īŧŒäģĨįĩ„įš”雲įĢ¯åŽŸį”ŸæŠ€čĄ“įš„å…ąäēĢ詞åŊ™ã€‚ +æ­ĄčŋŽæ‰€æœ‰éĩ厈æœŦå°ˆæĄˆåŽ—æ—¨å’ŒįĢ į¨‹įš„åƒčˆ‡č€…åšå‡ēč˛ĸįģ。 + +äģģäŊ•å¸Œæœ›č˛ĸįģįš„äēēéƒŊ可äģĨ提äē¤ GitHub č­°éĄŒæˆ–å‰ĩåģē拉取čĢ‹æą‚。 +čĢ‹įĸēäŋæ‚¨éĩåžĒ[éĸ¨æ ŧ指南](/zh-tw/style-guide/)īŧŒé–ąčŽ€[åĻ‚äŊ•åƒčˆ‡č˛ĸįģ](/zh-tw/contribute/)文äģļīŧŒåŠ å…Ĩ [CNCF Slack](https://communityinviter.com/apps/cloud-native/cncf)åˇĨäŊœå€īŧŒä¸Ļ加å…Ĩ [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB)é ģ道。 + +䚟有一個 [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF)é ģ道īŧŒæäž›æƒŗ將 Glossary įŋģč­¯į‚ēå…ļæœŦ地化čĒžč¨€įš„äēē們äŊŋį”¨ã€‚ + +## 致čŦ {#acknowledgements} + +雲įĢ¯åŽŸį”Ÿ Glossary į”ą CNCF čĄŒéŠˇå§”å“Ąæœƒ (CNCF Marketing Committee)īŧˆå•†æĨ­åƒšå€ŧ小įĩ„å§”å“Ąæœƒīŧ‰į™ŧčĩˇīŧŒåŒ…æ‹Ŧ來č‡Ē +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/)、 +[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/)、 +[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk)、 +[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/)、 +[Katelin Ramer](https://www.linkedin.com/in/katelinramer/)、 +[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca)å’Œč¨ąå¤šįš„č˛ĸįģč€…ã€‚ +åĻ‚æžœæƒŗį˛åž—厌整įš„č˛ĸįģč€…åå–ŽīŧŒčĢ‹åƒč€ƒ[æ­¤ GitHub page](https://github.com/cncf/glossary/graphs/contributors)。 + +Glossary ä¸ģčĻįļ­č­ˇį”ą +[Seokho Son](https://www.linkedin.com/in/seokho-son/)、 +[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/)、 +[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/)、 +[Nate W.](https://www.linkedin.com/in/nate-double-u/) +和 [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/)。 + +[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/) +和 [Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/) +äģ–們是名č­Ŋįļ­č­ˇč€…īŧŒæˆ‘å€‘æˇąæˇąįš„æ„Ÿæŋ€äģ–們多嚴䞆所做å‡ēįš„å¯ļ貴č˛ĸįģ。 + +最垌īŧŒé›˛įĢ¯åŽŸį”Ÿ Glossary įš„įšéĢ”中文æœŦ地化åˇĨäŊœīŧŒį”ąé›˛įĢ¯åŽŸį”Ÿ Glossary įšä¸­æœŦ地化團隊 +[å‚…č€€åžˇ(Ader Fu)](https://github.com/ydfu)、 +[éģƒį§‰éˆž(Phil Huang)](https://github.com/pichuang)、 +[é‚ąåŽį‘‹(HungWei Chiu)](https://github.com/hwchiu) +和[林č‡Ē均(John Lin)](https://github.com/johnlinp) +進行č˛ĸįģ與įļ­č­ˇīŧŒ +同時䚟有įœžå¤šįšéĢ”中文č˛ĸįģ者 [#glossary-localization-traditional-chinese](https://cloud-native.slack.com/archives/C055KERTNCX) 在é ģé“ä¸­åƒčˆ‡č¨ŽčĢ–čˆ‡č˛ĸįģ。 + +## 授æŦŠæĸæŦž {#license} + +所有į¨‹åŧįĸŧč˛ĸįģéƒŊ在 Apache 2.0 č¨ąå¯ä¸‹ã€‚ +文æĒ”在 CC BY 4.0 下į™ŧ布。 diff --git a/content/zh-tw/abstraction.md b/content/zh-tw/abstraction.md new file mode 100644 index 0000000000..91889c8e52 --- /dev/null +++ b/content/zh-tw/abstraction.md @@ -0,0 +1,20 @@ +--- +title: æŠŊ蹥 +status: Completed +category: åąŦ性 +tags: ["åŸēæœŦ原į†", "", ""] +--- + +åœ¨č¨ˆįŽ—抟įš„čƒŒæ™¯ä¸­īŧŒæŠŊčąĄæ˜¯ä¸€į¨ŽčĄ¨į¤ēæ–šåŧīŧŒåŽƒå°‡į´°į¯€éšąč—čĩˇäž†īŧŒ +讓[服務](/zh-tw/service/)įš„äŊŋį”¨č€…īŧˆåŒ…æ‹Ŧé›ģč…Ļį¨‹åŧå’Œäēē類īŧ‰čƒŊ夠更厚易į†č§Ŗįŗģįĩąä¸ĻäŊŋå…ļ更通į”¨ã€‚ +一個垈åĨŊįš„䞋子是您įš„į­†č¨˜åž‹é›ģč…Ļįš„äŊœæĨ­įŗģįĩąīŧˆOSīŧ‰ã€‚ +厃æŠŊčąĄåŒ–æ‚¨įš„č¨ˆįŽ—抟運äŊœįš„所有į´°į¯€ã€‚ +您不需čĻäē†č§Ŗ CPUã€č¨˜æ†ļéĢ”äģĨ及į¨‹åŧåĻ‚äŊ•é‹äŊœīŧŒ +您åĒ需操äŊœäŊœæĨ­įŗģįĩąīŧŒäŊœæĨ­įŗģįĩąæœƒč™•į†é€™äē›į´°į¯€ã€‚ +所有į´°į¯€éƒŊčĸĢéšąč—åœ¨äŊœæĨ­įŗģįĩąįš„「嚕垌」或æŠŊčąĄäš‹åžŒã€‚ + +įŗģįĩąé€šå¸¸å…ˇæœ‰å¤šå€‹æŠŊčąĄåą¤ã€‚ +é€™éĄ¯č‘—į°ĄåŒ–äē†é–‹į™ŧ過į¨‹ã€‚ +在į¨‹åŧč¨­č¨ˆæ™‚īŧŒé–‹į™ŧäēēå“ĄåģēįĢ‹čˆ‡į‰šåŽšæŠŊčąĄåą¤å…ŧ厚įš„å…ƒäģļīŧŒ +而不需čĻæ“”åŋƒåē•åą¤įš„å…ˇéĢ”į´°į¯€åŠåˇŽį•°ã€‚ +不čĢ–åē•åą¤æ˜¯äģ€éēŧīŧŒåĒčĻčˆ‡æŠŊčąĄåą¤å…ŧ厚īŧŒå…ƒäģļå°ąčƒŊ在įŗģįĩąä¸­é‹äŊœã€‚ diff --git a/content/zh-tw/agile-software-development.md b/content/zh-tw/agile-software-development.md new file mode 100644 index 0000000000..2c608e5795 --- /dev/null +++ b/content/zh-tw/agile-software-development.md @@ -0,0 +1,27 @@ +--- +title: æ•æˇčģŸéĢ”é–‹į™ŧ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +æ•æˇčģŸéĢ”é–‹į™ŧ是一įŗģ列åŧˇčĒŋčŋ­äģŖ開į™ŧé€ąæœŸå’Œč‡Ē我įĩ„įš”團隊įš„å¯Ļč¸æ–šæŗ•ã€‚ +čˆ‡åƒ…åœ¨å°ˆæĄˆįĩæŸæ™‚才į”Ÿæˆåƒšå€ŧįš„į€‘布åŧå°ˆæĄˆį›¸æ¯”īŧŒ +æ•æˇčģŸéĢ”é–‹į™ŧ著重æ–ŧ僚å€ŧįš„持įēŒã€åĸžé‡åŧįš„äē¤äģ˜īŧŒä¸Ļ對過į¨‹æœŦčēĢ進行æŧ¸é€˛åŧįš„攚善。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +在čģŸéĢ”å°ˆæĄˆä¸­īŧŒåŽšįžŠã€å‚ŗ達和į†č§Ŗ所有刊åŽŗ關äŋ‚äēēįš„éœ€æą‚éžå¸¸å›°é›ŖīŧŒį”šč‡ŗ是不可čƒŊįš„。 +į„ļ而īŧŒåŽĸæˆļ希望äģ–們įš„čģŸéĢ”å°ˆæĄˆčƒŊ有éĢ˜å“čŗĒīŧŒåœ¨é įŽ—、時į¨‹åŠå°ˆæĄˆį¯„圍內äē¤äģ˜ã€‚ +į›¸čŧƒæ–ŧæ–ŧį€‘布åŧį­–į•ĨīŧŒæ•æˇčģŸéĢ”é–‹į™ŧįš„é€ąæœŸį‰šæ€§äŊŋå…ļčƒŊ持įēŒéŠæ‡‰éœ€æą‚īŧŒä¸Ļ且čƒŊ更åŋĢ地遊應å…ļäģ–所有情æŗã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +æ•æˇčģŸéĢ”é–‹į™ŧ包åĢäē†å‚ŗįĩąīŧˆį€‘布åŧīŧ‰į­–į•Ĩįš„所有階æŽĩīŧŒ +åĻ‚éœ€æą‚åˇĨį¨‹ã€čĻåŠƒã€é–‹į™ŧ、寊核、æ¸ŦčŠĻ和äē¤äģ˜ã€‚ +最大įš„不同在æ–ŧīŧŒæ•´å€‹čģŸéĢ”å°ˆæĄˆįš„æ™‚é–“čˇ¨åēĻčĸĢ切分į‚ē多個čŋ­äģŖīŧŒ +每個čŋ­äģŖéƒŊ包åĢ所有這äē›éšŽæŽĩ。 +在每個čŋ­äģŖįĩæŸåžŒīŧŒé–‹į™ŧ團隊可äģĨ與åŽĸæˆļ一čĩˇå¯ŠæŸĨå‰ĩ造įš„僚å€ŧīŧŒä¸Ļå°éœ€æą‚é€˛čĄŒčĒŋ整äģĨ達到最įĩ‚į›Žæ¨™ã€‚ +此外īŧŒé–‹į™ŧ團隊還會反思需čĻæŽĄå–å“Ēäē›čĄŒå‹•äž†æ”šé€˛éŽį¨‹æœŦčēĢ。 diff --git a/content/zh-tw/api-gateway.md b/content/zh-tw/api-gateway.md new file mode 100644 index 0000000000..53d0ec9508 --- /dev/null +++ b/content/zh-tw/api-gateway.md @@ -0,0 +1,25 @@ +--- +title: API 閘道器 +status: Completed +category: æŠ€čĄ“ +tags: ["įļ˛čˇ¯", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +[API](/zh-tw/application-programming-interface/) 閘道器是一個åˇĨå…ˇīŧŒ +åŽƒčšé›†äē†å¤šæ‡‰į”¨į¨‹åŧįš„ APIīŧŒäŊŋ厃們可äģĨ透過喎一įš„å…ĨåŖ存取。 +這äŊŋåž—įĩ„įš”čƒŊå¤ é›†ä¸­č™•į†į‰šåŽšįš„功čƒŊīŧˆåĻ‚čēĢåˆ†éŠ—č­‰ã€æŽˆæŦŠæˆ–限åˆļ應į”¨į¨‹åŧäš‹é–“įš„čĢ‹æą‚數量īŧ‰ã€‚ +API 閘道器äŊœį‚ēįš„å…Ŧå…ąäģ‹éĸīŧŒäž†į‚ē API äŊŋį”¨č€…īŧˆé€šå¸¸æ˜¯å¤–部įš„īŧ‰æäž›æœå‹™ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åĻ‚果您希望į‚ē外部äŊŋį”¨č€…提䞛 APIīŧŒæ‚¨é€šå¸¸æœƒå¸Œæœ›æœ‰ä¸€å€‹å–Žä¸€įš„å…ĨåŖéģžäž†įŽĄį†æ‰€æœ‰įš„存取。 +此外īŧŒAPI 閘道器可äģĨčŽ“æ‚¨įĩąä¸€åĨ—į”¨åŠŸčƒŊ到所有įš„æĩé‡ä¸ŠīŧŒč€Œä¸éœ€čĻäŋŽæ”šäģģäŊ•æ‡‰į”¨į¨‹åŧįš„į¨‹åŧįĸŧ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +API 閘道器į‚ē應į”¨į¨‹åŧä¸­įš„各į¨Ž API 提䞛äē†ä¸€å€‹å–Žä¸€å­˜å–éģžīŧŒ +這äŊŋåž—įĩ„įš”čƒŊå¤ åœ¨é›†ä¸­č™•į†čˇ¨åŸŸå•†æĨ­é‚čŧ¯æˆ–厉全邏čŧ¯īŧŒäšŸčŽ“應į”¨į¨‹åŧäŊŋį”¨č€…čƒŊ夠透過č¨Ē問喎一地址æģŋčļŗæ‰€æœ‰éœ€æą‚ã€‚ +API 閘道器可äģĨ透過į‚ēįŗģįĩąä¸­æ‰€æœ‰Web服務įš„čĢ‹æą‚提䞛喎一įš„存取éģžäž†į°ĄåŒ–像厉全性和[å¯č§€æ¸Ŧ性](/zh-tw/observability/)這æ¨Ŗįš„運į‡Ÿå•éĄŒã€‚ +į”ąæ–ŧ所有čĢ‹æą‚éƒŊæĩįļ“ API 閘道器īŧŒåŽƒå¯äģĨ集中æˇģ加功čƒŊīŧŒåĻ‚指標æ”ļ集、速įŽ‡é™åˆļ和授æŦŠã€‚ diff --git a/content/zh-tw/blue-green-deployment.md b/content/zh-tw/blue-green-deployment.md new file mode 100644 index 0000000000..2139ef91bf --- /dev/null +++ b/content/zh-tw/blue-green-deployment.md @@ -0,0 +1,30 @@ +--- +title: 藍įļ éƒ¨įŊ˛ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "應į”¨į¨‹åŧ", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +藍įļ éƒ¨įŊ˛æ˜¯ä¸€į¨ŽäģĨ最小įš„åœæŠŸæ™‚é–“æ›´æ–°åŸˇčĄŒä¸­įš„é›ģč…Ļįŗģįĩąįš„æ–šæŗ•ã€‚ +įļ­é‹č€…įļ­č­ˇå…Šå€‹į’°åĸƒīŧŒčĸĢį¨ąį‚ē "藍" 和 "įļ "。 +一個提䞛æ­Ŗåŧæœå‹™įš„æĩé‡īŧˆæ‰€æœ‰äŊŋį”¨č€…į›Žå‰æ­Ŗ在äŊŋį”¨įš„į‰ˆæœŦīŧ‰īŧŒåĻ一個則是需čĻå‡į´šįš„服務。 +一æ—Ļ非æ´ģčēīŧˆįļ č‰˛īŧ‰į’°åĸƒä¸­įš„æ¸ŦčŠĻįĩæŸīŧŒ +æ­Ŗåŧæœå‹™æĩé‡æœƒčĸĢ切換過䞆īŧˆé€šå¸¸æœƒäŊŋį”¨[負čŧ‰åšŗčĄĄå™¨](/zh-tw/load-balancer/)īŧ‰ã€‚ +æŗ¨æ„īŧŒč—įļ éƒ¨įŊ˛é€šå¸¸æ„æ€æ˜¯čĻåˆ‡æ›æ•´å€‹į’°åĸƒīŧŒåŒ…æ‹Ŧč¨ąå¤š[服務](/zh-tw/service/)。 +äģ¤äēē困惑įš„是īŧŒæœ‰æ™‚é€™å€‹čĄ“čĒžčĸĢį”¨æ–ŧ一個įŗģįĩąå…§įš„喎個服務。 +į‚ēäē†éŋ免這個歧į•°īŧŒæåˆ°å–Žå€‹å…ƒäģļ時īŧŒæœ€åĨŊäŊŋį”¨ "é›ļ停抟部įŊ˛" ä¸€čŠžã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +在更新é‚Ŗäē›įŧē䚏向垌į›¸åŽšæ€§č€Œåŋ…é ˆ"同æ­Ĩ"æ”ščŽŠįš„čģŸéĢ”時īŧŒč—įļ éƒ¨įŊ˛å…č¨ąæœ€įŸ­įš„停抟時間。 +例åĻ‚īŧŒč—įļ éƒ¨įŊ˛éŠį”¨æ–ŧ一個į”ąįļ˛įĢ™å’Œčŗ‡æ–™åēĢįĩ„成įš„įˇšä¸Šå•†åē—īŧŒ +čŠ˛å•†åē—需čĻæ›´æ–°īŧŒäŊ†æ–°į‰ˆæœŦįš„čŗ‡æ–™åēĢ不čƒŊ與舊į‰ˆæœŦįš„įļ˛įĢ™ä¸€čĩˇäŊŋį”¨īŧŒåäš‹äēĻį„ļ。 +在這æ¨Ŗįš„情æŗä¸‹īŧŒå…Šč€…需čĻåŒæ™‚æ”ščŽŠã€‚ +åĻ‚果在æ­Ŗåŧį’°åĸƒé€™æ¨Ŗ做īŧŒåŽĸæˆļ會æŗ¨æ„åˆ°åœæŠŸæ™‚間。 + +## åĻ‚äŊ•åšĢ劊 {#how-it-helps} + +對æ–ŧ需čĻäģĨ最小įš„åœæŠŸæ™‚é–“é€˛čĄŒæ›´æ–°įš„éžé›˛įĢ¯åŽŸį”ŸčģŸéĢ”䞆čĒĒīŧŒč—įļ éƒ¨įŊ˛æ˜¯ä¸€į¨ŽéŠåˆįš„æ–šæŗ•ã€‚ +į„ļ而īŧŒåŽƒįš„äŊŋį”¨é€šå¸¸æ˜¯ä¸€į¨Ž "č­Ļ訊"īŧŒč€čˆŠįŗģįĩąéœ€čĻé‡æ–°č¨­č¨ˆīŧŒäģĨäžŋ可äģĨå–Žį¨æ›´æ–°å…ƒäģļ。 diff --git a/content/zh-tw/canary-deployment.md b/content/zh-tw/canary-deployment.md new file mode 100644 index 0000000000..05993e5b67 --- /dev/null +++ b/content/zh-tw/canary-deployment.md @@ -0,0 +1,28 @@ +--- +title: 金įĩ˛é›€éƒ¨įŊ˛ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "應į”¨į¨‹åŧ", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +金įĩ˛é›€éƒ¨įŊ˛æ˜¯ä¸€į¨Žéƒ¨įŊ˛į­–į•ĨīŧŒä¸€é–‹å§‹æœ‰å…Šå€‹į’°åĸƒīŧšä¸€å€‹į›Žå‰æœ‰åŗ時æĩé‡įš„į’°åĸƒå’Œä¸€å€‹į›Žå‰į„Ąåŗ時æĩé‡ä¸”åˇ˛æ›´æ–°į¨‹åŧįĸŧįš„į’°åĸƒã€‚ +æĩé‡æœƒé€æŧ¸åžžæ‡‰į”¨į¨‹åŧįš„原始į‰ˆæœŦčŊ‰į§ģ到更新垌įš„į‰ˆæœŦ。 +厃可äģĨåžž 1% įš„æĩé‡é–‹å§‹īŧŒį„ļ垌是 10%、25% į­‰į­‰īŧŒäģĨæ­¤éĄžæŽ¨īŧŒį›´åˆ°æ‰€æœ‰æĩé‡éƒŊčŊ‰į§ģåˆ°åˇ˛æ›´æ–°įš„į‰ˆæœŦ。 +äŧæĨ­å¯äģĨ在æ­Ŗåŧį’°åĸƒä¸­æ¸ŦčŠĻ新į‰ˆæœŦįš„čģŸéĢ”īŧŒį˛åž—回éĨ‹ã€éŒ¯čĒ¤č¨ēæ–ˇīŧŒä¸Ļ在åŋ…čĻįš„時候可äģĨåŋĢ速退回到įŠŠåŽšį‰ˆæœŦ。 + +「金įĩ˛é›€ã€é€™čŠžæ˜¯æŒ‡ã€Œį¤Ļ坑中įš„金įĩ˛é›€ã€įš„做æŗ•īŧŒæŠŠé‡‘įĩ˛é›€å¸ļå…Ĩį¤Ļ坑中įĸēäŋį¤ĻåˇĨ們įš„厉全。 +åĻ‚æžœå‡ēįžį„Ąå‘ŗįš„有åŽŗæ°ŖéĢ”īŧŒé€™éšģéŗĨå°ąæœƒæ­ģäēĄīŧŒį¤ĻåˇĨ們įŸĨ道äģ–們åŋ…須儘速é›ĸ開。 +同æ¨Ŗ地īŧŒåĻ‚果更新垌įš„į¨‹åŧįĸŧå‡ēįžå•éĄŒīŧŒåŗ時æĩé‡å°ąæœƒčĸĢ"撤é›ĸ"回原始į‰ˆæœŦ中。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į„ĄčĢ–æ¸ŦčŠĻį­–į•Ĩ有多嚴čŦšīŧŒį¸Ŋ是會在æ­Ŗåŧį’°åĸƒä¸­æœƒį™ŧįžä¸€äē›éŒ¯čĒ¤ã€‚ +將 100% æĩé‡åžžæ‡‰į”¨į¨‹åŧįš„一個į‰ˆæœŦ厌全切換到åĻ一個į‰ˆæœŦīŧŒå¯čƒŊæœƒå°Žč‡´æ›´åš´é‡įš„å¤ąæ•—ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +金įĩ˛é›€éƒ¨įŊ˛čŽ“äŧæĨ­åœ¨å¤§é‡æĩé‡čŊ‰į§ģ到新į‰ˆæœŦäģĨ前īŧŒå¯äģĨæŸĨįœ‹æ–°į‰ˆæœŦčģŸéĢ”在å¯Ļ際場景中äŊŋį”¨įš„情åŊĸ。 +這į¨Žį­–į•Ĩ讓äŧæĨ­čƒŊ夠最大限åēĻ地減少停抟時間īŧŒä¸Ļ在新部įŊ˛å‡ēįžå•éĄŒæ™‚åŋĢ速退回上個į‰ˆæœŦ。 +åŽƒå…č¨ąæ›´æˇąåēĻįš„æ­Ŗåŧæ‡‰į”¨į¨‹åŧæ¸ŦčŠĻīŧŒč€Œä¸æœƒå°æ•´éĢ”äŊŋį”¨č€…éĢ”銗į”ĸį”Ÿé‡å¤§åŊąéŸŋ。 diff --git a/content/zh-tw/chaos-engineering.md b/content/zh-tw/chaos-engineering.md new file mode 100644 index 0000000000..05ed1e2955 --- /dev/null +++ b/content/zh-tw/chaos-engineering.md @@ -0,0 +1,23 @@ +--- +title: æˇˇæ˛ŒåˇĨį¨‹ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +æˇˇæ˛ŒåˇĨį¨‹æˆ– CEīŧŒæ˜¯åœ¨æ­Ŗåŧį’°åĸƒä¸­å°[分æ•Ŗåŧįŗģįĩą](/zh-tw/distributed-systems/)進行å¯Ļ驗įš„å°ˆæĨ­īŧŒäģĨåģēįĢ‹å°įŗģįĩąåœ¨æ‰ŋå—æˇˇäē‚和意外情æŗä¸‹æ™‚čƒŊ力įš„äŋĄåŋƒã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +[SRE](/zh-tw/site-reliability-engineering/) 和 [DevOps](/zh-tw/devops/) å¯Ļ踐æŗ¨é‡æéĢ˜į”ĸ品įš„åŊˆæ€§å’Œ[可靠性](/zh-tw/reliability/)æŠ€čĄ“ã€‚ +įŗģįĩąåœ¨æ•…障厚錯時įĸēäŋæœ‰čļŗ夠服務品čŗĒįš„čƒŊ力通常是čģŸéĢ”é–‹į™ŧįš„čĻæą‚。有嚞個斚éĸ可čƒŊå°Žč‡´æ‡‰į”¨į¨‹åŧį™ŧį”Ÿæ•…éšœīŧŒäž‹åĻ‚åŸēį¤Žč¨­æ–Ŋ、åšŗ台或(åŸēæ–ŧ[垎服務](/zh-tw/microservices/)įš„)應į”¨į¨‹åŧįš„å…ļäģ–部分。 +在æ­Ŗåŧį’°åĸƒä¸­éĢ˜é ģįŽ‡éƒ¨įŊ˛æ–°åŠŸčƒŊ會åĸžåŠ å°Žč‡´åœæŠŸå’Œåš´é‡äē‹äģļį™ŧį”Ÿįš„可čƒŊ性īŧŒé€™å°æĨ­å‹™æœƒį”ĸį”Ÿé‡å¤§åŊąéŸŋ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +æˇˇæ˛ŒåˇĨį¨‹æ˜¯ä¸€į¨ŽæģŋčļŗåŊˆæ€§éœ€æą‚įš„æŠ€čĄ“ã€‚åŽƒį”¨æ–ŧ達成對åŸēį¤Žč¨­æ–Ŋ、åšŗ台和應į”¨į¨‹åēæ•…障厚錯。 +æˇˇæ˛ŒåˇĨį¨‹å¸ĢäŊŋį”¨æˇˇæ˛Œå¯Ļ驗來ä¸ģ動æŗ¨å…Ĩ隨抟故障īŧŒäģĨéŠ—č­‰æ‡‰į”¨į¨‹åēã€åŸēį¤Žč¨­æ–Ŋ或åšŗ台是åĻčƒŊ夠č‡Ē我äŋŽåžŠīŧŒä¸Ļä¸”æ•…éšœä¸æœƒæ˜ŽéĄ¯åŊąéŸŋåŽĸæˆļ。 +æˇˇæ˛Œå¯Ļ銗旨在į™ŧįžį›˛éģžīŧˆäž‹åĻ‚į›Ŗ控或č‡Ēå‹•æ“´åą•æŠ€čĄ“īŧ‰īŧŒä¸Ļ在嚴重äē‹äģļ期間提升團隊䚋間įš„æēé€šã€‚ +這į¨Žæ–šæŗ•æœ‰åŠŠæ–ŧ提éĢ˜įŗģįĩąįš„åŊˆæ€§å’Œåœ˜éšŠå°č¤‡é›œįŗģįĩąįš„äŋĄåŋƒīŧŒå°¤å…ļ是æ­Ŗåŧį’°åĸƒã€‚ diff --git a/content/zh-tw/client-server-architecture.md b/content/zh-tw/client-server-architecture.md new file mode 100644 index 0000000000..e59997b452 --- /dev/null +++ b/content/zh-tw/client-server-architecture.md @@ -0,0 +1,32 @@ +--- +title: į”¨æˆļįĢ¯-äŧē服器æžļ構 +status: Completed +category: æĻ‚åŋĩ +tags: ["æžļ構", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +在į”¨æˆļįĢ¯-äŧē服器æžļ構īŧˆåˆå¯čĸĢį¨ąįˆ˛ä¸ģåžžåŧæžļ構īŧ‰ä¸­īŧŒæ§‹æˆæ‡‰į”¨į¨‹åŧįš„邏čŧ¯īŧˆæˆ–者čĒĒį¨‹åŧįĸŧīŧ‰æœƒčĸĢ拆č§Ŗč‡ŗå…Šįĩ„或是多įĩ„å…ƒäģļīŧš +一įĩ„į”¨æˆļįĢ¯č˛ č˛Ŧį™ŧčĩˇåˇĨäŊœčĢ‹æą‚īŧˆäž‹åĻ‚在äŊ įš„į€čĻŊ器čŖĄåŸˇčĄŒįš„ Gmail įļ˛é æ‡‰į”¨į¨‹åŧīŧ‰īŧŒ +äģĨ及一įĩ„或多įĩ„äŧēæœå™¨č˛ č˛Ŧæģŋčļŗ這個čĢ‹æą‚īŧˆäž‹åĻ‚åŸˇčĄŒåœ¨ Google 雲įĢ¯įš„「į™ŧ送éƒĩäģļ」服務īŧ‰ã€‚ +舉例來čĒĒīŧŒäŊ æ’°å¯Ģįš„外寄é›ģ子éƒĩäģļ是į”ąį”¨æˆļįĢ¯īŧˆåœ¨äŊ įš„į€čĻŊ器čŖĄåŸˇčĄŒįš„įļ˛é æ‡‰į”¨į¨‹åŧīŧ‰ +å‚ŗ送到äŧē服器īŧˆGmail įš„äŧē服器īŧŒé€™äē›äŧē服器會將äŊ įš„外寄é›ģ子éƒĩäģļčŊ‰å¯„įĩĻæ”ļäģļäēēīŧ‰ã€‚ + +這與į¨įĢ‹åŧæ‡‰į”¨į¨‹åŧīŧˆäž‹åĻ‚æĄŒéĸ應į”¨į¨‹åŧīŧ‰åŊĸ成對比īŧŒåžŒč€…將所有įš„åˇĨäŊœé›†ä¸­æ–ŧä¸€č™•åŽŒæˆã€‚ +舉例來čĒĒīŧŒåƒæ˜¯ Microsoft Word 這æ¨Ŗįš„æ–‡å­—č™•į†į¨‹åŧīŧŒå¯äģĨ厌全厉čŖä¸Ļ在äŊ įš„é›ģč…Ļä¸ŠåŸˇčĄŒã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į”¨æˆļįĢ¯-äŧē服器æžļ構č§Ŗæąēäē†į¨įĢ‹åŧæ‡‰į”¨į¨‹åŧéĸ臨įš„一大挑戰īŧšåŽšæœŸæ›´æ–°ã€‚ +對æ–ŧį¨įĢ‹åŧæ‡‰į”¨į¨‹åŧīŧŒæ¯ä¸€æŦĄįš„æ›´æ–°īŧŒéƒŊ需čĻäŊŋį”¨č€…č‡Ē行下čŧ‰ä¸Ļ厉čŖæœ€æ–°į‰ˆæœŦ。 +čŠĻæƒŗåĻ‚æžœäŊ åœ¨į€čĻŊ Amazon įš„į”ĸ品į›ŽéŒ„前īŧŒéœ€čĻå…ˆå°‡å…ļ厌整下čŧ‰åˆ°äŊ įš„é›ģč…Ļ上才čƒŊ開始į€čĻŊīŧ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +透過在遠įĢ¯äŧē服器或是服務中å¯Ļįžæ‡‰į”¨į¨‹åŧįš„邏čŧ¯īŧŒįļ­é‹äēēå“Ąå¯äģĨ在不攚動į”¨æˆļįĢ¯é‚čŧ¯įš„情æŗä¸‹é€˛čĄŒæ›´æ–°ã€‚ +這意å‘ŗč‘—å¯äģĨ更é ģįšåœ°é€˛čĄŒæ›´æ–°ã€‚ +將čŗ‡æ–™å­˜å„˛åœ¨äŧē服器上īŧŒå…č¨ąå¤šįĩ„äŊŋį”¨č€…æŸĨįœ‹å’Œå…ąäēĢį›¸åŒįš„čŗ‡æ–™ã€‚ +čŠĻæƒŗįœ‹įœ‹įˇšä¸Šæ–‡å­—處į†å™¨čˆ‡å‚ŗįĩąįš„é›ĸįˇšæ–‡å­—處į†å™¨äš‹é–“įš„äŊŋį”¨åˇŽį•°ã€‚ +åœ¨å‰č€…ä¸­īŧŒäŊ įš„æĒ”æĄˆæ˜¯å„˛å­˜æ–ŧäŧē服器上ä¸Ļ可äģĨ與å…ļäģ–äŊŋį”¨č€…å…ąäēĢīŧŒäģ–們åĒ需垞äŧē服器下čŧ‰åŗ可。 +在å‚ŗįĩąä¸–į•Œä¸­īŧŒæĒ”æĄˆéœ€čĻå…ˆč¤‡čŖŊ到可į§ģ除åŧåĒ’éĢ”īŧˆåƒæ˜¯įŖįĸŸį‰‡īŧīŧ‰ä¸­ä¸Ļčˆ‡å€‹åˆĨį”¨æˆļ分äēĢ。 diff --git a/content/zh-tw/cloud-computing.md b/content/zh-tw/cloud-computing.md new file mode 100644 index 0000000000..94dff84e85 --- /dev/null +++ b/content/zh-tw/cloud-computing.md @@ -0,0 +1,18 @@ +--- +title: 雲įĢ¯é‹įŽ— +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "åŸēį¤Žč¨­æ–Ŋ", ""] +--- + +## äģ€éēŧæ˜¯é›˛įĢ¯é‹įŽ— {#what-it-is} + +雲įĢ¯é‹įŽ—是一į¨Žé€šéŽįļ˛éš›įļ˛čˇ¯æäž›č¨ˆįŽ—čŗ‡æēīŧˆåĻ‚CPU、įļ˛čˇ¯å’ŒįŖįĸŸåŠŸčƒŊīŧ‰įš„服務īŧŒäŊŋį”¨æˆļ可äģĨ遠įĢ¯å­˜å–äŊæ–ŧå¯ĻéĢ”äŊįŊŽįš„運įŽ—čŗ‡æēã€‚一čˆŦæœƒæ šæ“šé›˛įĢ¯åŸēį¤Žč¨­æ–Ŋ是į”¨æ–ŧ專門į‚ēįĩ„įš”č€Œč¨­æˆ–æ˜¯å…ąäēĢį”¨æ–ŧ開攞åŧæœå‹™īŧŒå°‡å…ļ區分į‚ēį§æœ‰é›˛å’Œå…Ŧæœ‰é›˛ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +晎遍䞆čĒĒīŧŒį•ļįĩ„įš”需čĻæ“´åą•å…ļ運įŽ—čŗ‡æēæ™‚īŧŒæœƒéĸč‡¨å…Šå€‹ä¸ģčĻæŒ‘戰īŧšä¸€æ–šéĸ是čŗŧč˛ˇã€æ”¯æ´å’Œč¨­č¨ˆæ–°įš„設æ–Ŋ䞆托įŽĄį‰Šį†äŧē服器和įļ˛čˇ¯īŧŒåĻ一斚éĸ則是擴充和įļ­č­ˇįžæœ‰č¨­æ–Ŋã€‚é€éŽé›˛įĢ¯é‹įŽ—īŧŒįĩ„įš”čƒŊ夠透過外包部分įš„運įŽ—éœ€æą‚äģĨč§Ŗæąē這äē›č€ƒéŠ—。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +雲įĢ¯äž›æ‡‰å•†čŽ“įĩ„įš”可äģĨ按需į§Ÿį”¨č¨ˆįŽ—čŗ‡æēä¸Ļæ šæ“šäŊŋį”¨æƒ…æŗäģ˜č˛ģīŧŒåžžč€Œå¸ļ䞆兊大å„Ēå‹ĸ。įŦŦ一是įĩ„įš”可äģĨ專æŗ¨æ–ŧį”ĸ品或服務īŧŒį„Ąéœ€į­‰åž…ã€č¨ˆåŠƒå’ŒæŠ•å…Ĩčŗ‡æēæ–ŧ新įš„į‰Šį†åŸēį¤Žč¨­æ–Ŋ。å…ļæŦĄīŧŒįĩ„įš”可äģĨæ šæ“šå¯Ļéš›éœ€æą‚éš¨æ™‚[擴充](/zh-tw/scalability/)å…ļ運įŽ—čŗ‡æēã€‚é€éŽé›˛įĢ¯é‹įŽ—īŧŒįĩ„įš”可äģĨåŊˆæ€§é¸æ“‡æ‰€éœ€įš„åŸēį¤Žč¨­æ–ŊīŧŒäģĨéŠæ‡‰ä¸æ–ˇčŽŠåŒ–įš„éœ€æą‚ã€‚ diff --git a/content/zh-tw/cloud-native-tech.md b/content/zh-tw/cloud-native-tech.md new file mode 100644 index 0000000000..59ae528165 --- /dev/null +++ b/content/zh-tw/cloud-native-tech.md @@ -0,0 +1,25 @@ +--- +title: 雲įĢ¯åŽŸį”ŸæŠ€čĄ“ +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēæœŦ原į†", "", ""] +--- + +## äģ€éēŧæ˜¯é›˛įĢ¯åŽŸį”ŸæŠ€čĄ“ {#what-it-is} + +雲įĢ¯åŽŸį”ŸæŠ€čĄ“īŧŒäšŸį¨ąį‚ē雲įĢ¯åŽŸį”ŸæŠ€čĄ“æŖ§īŧŒæ˜¯į”¨æ–ŧ構åģē[雲įĢ¯åŽŸį”Ÿæ‡‰į”¨į¨‹åŧ](/zh-tw/cloud-native-apps/)įš„æŠ€čĄ“ã€‚ +這äē›æŠ€čĄ“äŊŋįĩ„įš”čƒŊ夠在įžäģŖ和動態į’°åĸƒä¸­æ§‹åģēå’Œé‹čĄŒå¯æ“´åą•įš„應į”¨į¨‹åŧīŧŒäž‹åĻ‚å…Ŧ有、į§æœ‰å’Œæˇˇåˆé›˛īŧŒåŒæ™‚充分刊į”¨[雲計įŽ—](/zh-tw/cloud-computing/)įš„åĨŊč™•ã€‚ +åŽƒå€‘åžžé ­é–‹å§‹č¨­č¨ˆīŧŒäģĨ刊į”¨é›˛č¨ˆįŽ—和厚器īŧŒæœå‹™įļ˛æ ŧã€åžŽæœå‹™å’Œä¸å¯čŽŠåŸēį¤Žč¨­æ–Ŋįš„čƒŊ力。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +雲įĢ¯åŽŸį”ŸæŠ€čĄ“æŖ§æœ‰č¨ąå¤šä¸åŒįš„æŠ€čĄ“éĄžåˆĨīŧŒč§Ŗæąēäē†å„į¨ŽæŒ‘戰。 +åĻ‚果您æŸĨįœ‹ [CNCF Cloud Native Landscape](https://landscape.cncf.io/)īŧŒæ‚¨å°‡įœ‹åˆ°åŽƒæļ‰åŠč¨ąå¤šä¸åŒé ˜åŸŸã€‚ +äŊ†åžžéĢ˜åą¤æŦĄä¸Šįœ‹īŧŒåŽƒå€‘č§Ŗæąēäē†ä¸€įĩ„ä¸ģčĻįš„挑戰īŧšå‚ŗįĩą IT 操äŊœæ¨Ąåž‹įš„įŧēéģžã€‚ +挑戰包æ‹Ŧé›ŖäģĨå‰ĩåģēå¯æ“´åą•ã€åŽšéŒ¯ã€č‡Ē我äŋŽåžŠįš„應į”¨į¨‹åŧīŧŒäģĨ及äŊŽæ•ˆįš„čŗ‡æēåˆŠį”¨įŽ‡īŧŒį­‰į­‰ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +雖į„ļ每į¨ŽæŠ€čĄ“éƒŊč§Ŗæąēäē†éžå¸¸å…ˇéĢ”įš„å•éĄŒīŧŒäŊ†äŊœį‚ē一įĩ„īŧŒé›˛įĢ¯åŽŸį”ŸæŠ€čĄ“äŊŋéŦ†æ•Ŗč€Ļ合įš„įŗģįĩąå…ˇæœ‰åŊˆæ€§ã€å¯įŽĄį†å’Œå¯č§€å¯Ÿæ€§ã€‚ +įĩåˆå …åŧˇįš„č‡Ē動化īŧŒåŽƒå€‘å…č¨ąåˇĨį¨‹å¸Ģé ģįšä¸”可預æ¸Ŧåœ°é€˛čĄŒéĢ˜åŊąéŸŋįš„更攚īŧŒä¸Ļ減少不åŋ…čĻįš„åˇĨäŊœã€‚ +雲įĢ¯åŽŸį”ŸæŠ€čĄ“æŖ§æœ‰åŠŠæ–ŧå¯Ļįžé›˛įĢ¯åŽŸį”Ÿįŗģįĩąįš„期望į‰šæ€§ã€‚ diff --git a/content/zh-tw/cluster.md b/content/zh-tw/cluster.md new file mode 100644 index 0000000000..feb3f6cb4e --- /dev/null +++ b/content/zh-tw/cluster.md @@ -0,0 +1,23 @@ +--- +title: åĸ集 +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "æžļ構", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +一åē§åĸ集是指一įĩ„į”ąč¨ˆįŽ—抟或應į”¨į¨‹åŧį‚ēå¯Ļįžå…ąåŒį›Žæ¨™č€Œå”同åˇĨäŊœã€‚ +åœ¨é›˛įĢ¯åŽŸį”Ÿč¨ˆįŽ—įš„čƒŒæ™¯äš‹ä¸‹īŧŒé€™å€‹čŠžåŊ™é€šå¸¸į”¨æ–ŧ [Kubernetes](/zh-tw/kubernetes/)。 +一åē§ Kubernetes åĸ集是一įĩ„åŸˇčĄŒåœ¨åŽƒå€‘č‡Ēåˇąįš„厚器中įš„服務 (或åˇĨäŊœč˛ čŧ‰)īŧŒé€šå¸¸åœ¨ä¸åŒįš„æŠŸå™¨ä¸ŠåŸˇčĄŒã€‚ +所有這äē›é€šéŽįļ˛čˇ¯é€ŖæŽĨįš„ [厚器化](/zh-tw/containerization/) 服務集合äģŖ表一åē§åĸ集。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åœ¨å–Žä¸€č¨ˆįŽ—æŠŸä¸ŠåŸˇčĄŒįš„čģŸéĢ”č‹Ĩå‡ēįžå–Žéģžæ•…éšœ - åĻ‚é‚Ŗå°č¨ˆįŽ—抟į•ļæŠŸã€æˆ–č€…æœ‰äēē意外拔掉é›ģæēįˇšīŧŒé‚Ŗéēŧ某äē›é—œéĩįš„æĨ­å‹™įŗģįĩąå¯čƒŊ會čĸĢé›ĸįˇšã€‚ +é€™å°ąæ˜¯į‚ēäģ€éēŧįžäģŖčģŸéĢ”通常čĸĢåģē構成 [分æ•Ŗåŧæ‡‰į”¨į¨‹åŧ](/zh-tw/distributed-apps/)īŧŒä¸Ļ集įĩį‚ēåĸ集įš„原因。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +雖į„ļ分æ•Ŗåŧåĸ集應į”¨į¨‹åŧåŸˇčĄŒåœ¨å¤šå°æŠŸå™¨ä¸ŠīŧŒæļˆé™¤äē†å–Žéģžæ•…éšœīŧŒäŊ†æ˜¯åģē構分æ•Ŗåŧįŗģįĩąįĸēå¯Ļ垈困é›Ŗ。äē‹å¯Ļ上īŧŒåŽƒæ˜¯čŗ‡č¨ŠåˇĨį¨‹ä¸­įš„一門į¨įĢ‹å­¸į§‘。 +æą˛å–å…¨įƒį´šåˆĨįŗģįĩąįš„éœ€æą‚äģĨ及多嚴įš„反čĻ†čŠĻ驗下īŧŒæœ€įĩ‚äŋƒæˆäē†ä¸€į¨Žæ–°įš„æŠ€čĄ“æŖ§įš„į™ŧåą•: [雲įĢ¯åŽŸį”ŸæŠ€čĄ“](/zh-tw/cloud-native-tech/)。這äē›æ–°æŠ€čĄ“是äŊŋåž—åģē構分æ•Ŗåŧįŗģįĩąæ›´åŽšæ˜“操äŊœå’ŒåģēįĢ‹įš„å…ƒäģļ。 diff --git a/content/zh-tw/container-orchestration.md b/content/zh-tw/container-orchestration.md new file mode 100644 index 0000000000..22b09d3041 --- /dev/null +++ b/content/zh-tw/container-orchestration.md @@ -0,0 +1,25 @@ +--- +title: 厚器協čĒŋ +status: Completed +category: æĻ‚åŋĩ +--- + +## 是äģ€éēŧ {#what-it-is} + +[厚器](/zh-tw/container/)協čĒŋ指įš„是在動態įš„į’°åĸƒä¸­č‡Ē動įŽĄį†åŽšå™¨åŒ–應į”¨į¨‹åŧįš„į”Ÿå‘Ŋé€ąæœŸã€‚ +這通過一個厚器協čĒŋ器 (大多是 [Kubernetes](/zh-tw/kubernetes)) äž†åŸˇčĄŒåĻ‚部įŊ˛ã€(č‡Ē動)æ“´åą•ã€č‡Ē我äŋŽåžŠå’Œį›Ŗ控。 +協čĒŋæ˜¯ä¸€å€‹éšąå–ģį”¨čŠž: +協čĒŋåˇĨå…ˇå°ąåĻ‚同樂隊指揎一æ¨Ŗ指揎įŽĄį†įœžå¤šåŽšå™¨īŧŒįĸēäŋæ¯å€‹åŽšå™¨(或樂手)å„åŸˇå…ļčˇã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +手動įŽĄį†å¤§čĻæ¨Ąįš„[垎服務](/zh-tw/microservices)、厉全性和įļ˛čˇ¯é€šč¨ŠäģĨ及常čĻ‹įš„[分æ•Ŗåŧįŗģįĩą](/zh-tw/distributed-systems) +雖į„ļ困é›ŖäŊ†ä¸Ļ非不可čƒŊ。 +č€ŒåŽšå™¨å”čĒŋčƒŊ讓į”¨æˆļč‡Ē動化所有這äē›įŽĄį†äģģ務。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +厚器協čĒŋåˇĨäŊœå…č¨ąäŊŋį”¨æąē厚įŗģįĩąįš„į‹€æ…‹ã€‚ +éĻ–å…ˆīŧŒé€™äē›åˇĨå…ˇæœƒåŽŖ告įŗģįĩąæ‡‰å…ˇå‚™įš„į‹€æ…‹ (例åĻ‚ x 個厚器、 y 個 Pod į­‰į­‰)。 +æŽĨč‘—åŽšå™¨å”čĒŋåˇĨå…ˇå°‡æœƒč‡Ē動į›Ŗ控åŸēį¤Žåģē設ä¸Ļ且在å…ļį‹€æ…‹čˆ‡åŽŖ告į‹€æ…‹ä¸ä¸€č‡´æ™‚č‡Ē動äŋŽæ­Ŗ (例åĻ‚į•ļ一個厚器åŖžæŽ‰ä¸čƒŊé‹čĄŒæ™‚īŧŒå‰‡å•Ÿå‹•ä¸€å€‹å…¨æ–°įš„厚器)。 +這į¨Žč‡Ē動化įš„操äŊœį°ĄåŒ–äē†č¨ąå¤šåˇĨį¨‹åœ˜éšŠæ‰‹å‹•čˆ‡č¤‡é›œįš„įļ­é‹åˇĨäŊœīŧŒäž‹åĻ‚ 服務開通、部įŊ˛ã€č‡Ēå‹•æ“´åą•ã€įļ˛čˇ¯ã€č˛ čŧ‰åšŗčĄĄå’Œå…ļäģ–æ´ģ動。 diff --git a/content/zh-tw/container.md b/content/zh-tw/container.md new file mode 100644 index 0000000000..a6e6af6d6f --- /dev/null +++ b/content/zh-tw/container.md @@ -0,0 +1,32 @@ +--- +title: 厚器 +status: Completed +category: æŠ€čĄ“ +tags: ["應į”¨į¨‹åŧ", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +厚器是į”ąč¨ˆįŽ—抟中įš„äŊœæĨ­įŗģįĩąæ‰€įŽĄį†īŧŒä¸”å…ˇæœ‰čŗ‡æēčˆ‡åŠŸčƒŊ限åˆļįš„åŸˇčĄŒä¸­čĄŒį¨‹ã€‚ +åŽšå™¨čĄŒį¨‹å…§å¯į”¨įš„æĒ”æĄˆå¯čĸĢ打包成一個厚器映像æĒ”。 +厚器在同一台抟器上į›¸é„°åŸˇčĄŒīŧŒ +äŊ†é€šå¸¸äŊœæĨ­įŗģįĩąæœƒé˜ģæ­ĸčŽ“ä¸åŒåŽšå™¨čĄŒį¨‹é–“äē’į›¸æēé€šã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åœ¨åŽšå™¨æŠ€čĄ“å‡ēįžäš‹å‰īŧŒéœ€čĻå–Žį¨įš„æŠŸå™¨äž†åŸˇčĄŒä¸åŒæ‡‰į”¨į¨‹åŧã€‚ +每台抟器éƒŊéœ€å…ˇå‚™č‡Ēåˇąįš„äŊœæĨ­įŗģįĩąīŧŒå› č€Œéœ€čĻ CPUã€č¨˜æ†ļéĢ”å’ŒįŖįĸŸįŠē間īŧŒ +而這äē›čŗ‡æēéƒŊ是į‚ēäē†åŸˇčĄŒä¸€å€‹å–Žį¨æ‡‰į”¨į¨‹åŧã€‚ +åĻ外īŧŒį„ĄčĢ–是äŊœæĨ­įŗģįĩąįš„įļ­č­ˇã€å‡į´šæˆ–å•Ÿå‹•éƒŊæ˜¯éĄå¤–åˇĨäŊœč˛ æ“”įš„䞆æēã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +åŽšå™¨å¯å…ąäēĢį›¸åŒįš„äŊœæĨ­įŗģįĩąå’ŒæŠŸå™¨čŗ‡æēīŧŒ +分æ•ŖäŊœæĨ­įŗģįĩąįš„čŗ‡æēæļˆč€—īŧŒä¸Ļ有效įŽ‡įš„äŊŋį”¨å¯ĻéĢ”抟器įš„čŗ‡æēã€‚ +這æ¨Ŗįš„čƒŊåŠ›å…ˇå‚™å¯čĄŒæ€§įš„原因īŧŒæ˜¯å› į‚ē厚器䚋間įš„æēé€šé€šå¸¸éƒŊ受到限åˆļ才čƒŊ達成。 +這æ¨Ŗįš„æ–šåŧäšŸå…č¨ąæ›´å¤šįš„應į”¨į¨‹åŧåœ¨åŒå°å¯ĻéĢ”æŠŸå™¨ä¸ŠåŸˇčĄŒã€‚ + +į„ļč€ŒåŽšå™¨äšŸäŧ´éš¨č‘—一厚įš„限åˆļ。 +į”ąæ–ŧåŽšå™¨å…ąäēĢį›¸åŒįš„äŊœæĨ­įŗģįĩąīŧŒå› æ­¤čĄŒį¨‹įš„厉全性可čƒŊ會čŧƒå…ļäģ–æ›ŋäģŖæ–šæĄˆåˇŽã€‚ +厚器還需čĻé™åˆļå…ąäēĢčŗ‡æēįš„äŊŋį”¨ã€‚ +į‚ēäē†äŋč­‰čŗ‡æēåˆŠį”¨īŧŒįŽĄį†å“Ąåŋ…é ˆį´„束和限åˆļ記æ†ļéĢ”čˆ‡ CPU äŊŋį”¨įŽ‡īŧŒéŋå…čŽ“å…ļäģ–įš„應į”¨į¨‹åŧåŸˇčĄŒæ•ˆįŽ‡äŊŽčŊ。 diff --git a/content/zh-tw/continuous-delivery.md b/content/zh-tw/continuous-delivery.md new file mode 100644 index 0000000000..021d400255 --- /dev/null +++ b/content/zh-tw/continuous-delivery.md @@ -0,0 +1,36 @@ +--- +title: 持įēŒäē¤äģ˜ (CD) +status: Completed +category: æĻ‚åŋĩ +tags: ["應į”¨į¨‹åŧ", "æ–šæŗ•čĢ–", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +持įēŒäē¤äģ˜īŧŒé€šå¸¸į¸Žå¯Ģį‚ē CDīŧŒæ˜¯ä¸€åĨ—將原始įĸŧčŽŠæ›´č‡Ē動部įŊ˛åˆ°éŠ—æ”ļį’°åĸƒä¸­įš„å¯Ļ踐īŧŒ +īŧˆæˆ–者īŧŒåœ¨æŒįēŒéƒ¨įŊ˛įš„情æŗä¸‹īŧŒéƒ¨įŊ˛åˆ°æ­Ŗåŧį’°åĸƒä¸­īŧ‰ã€‚ +CD 關éĩ是包æ‹Ŧįĸē厚čģŸéĢ”在部įŊ˛å‰ +垗到充分æ¸ŦčŠĻįš„į¨‹åŧīŧŒä¸Ļ提䞛一į¨Žåœ¨åŋ…čĻæ™‚退回äŋŽæ”šįš„æ–šæŗ•ã€‚ +持įēŒæ•´åˆīŧˆCIīŧ‰æ˜¯å¯ĻįžæŒįēŒäē¤äģ˜įš„įŦŦ一æ­Ĩ +īŧˆäšŸå°ąæ˜¯čĒĒīŧŒåœ¨æ¸ŦčŠĻ和部įŊ˛äš‹å‰īŧŒčŽŠæ›´åŋ…é ˆäšžæˇ¨åœ°åˆäŊĩīŧ‰ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +大čĻæ¨Ąéƒ¨įŊ˛å…ˇæœ‰ [可靠性](/zh-tw/reliability/) įš„更新會成į‚ēä¸€å€‹å•éĄŒã€‚ +į†æƒŗ情æŗä¸‹īŧŒæˆ‘們會更é ģįšåœ°éƒ¨įŊ˛īŧŒį‚ēįĩ‚įĢ¯äŊŋį”¨č€…提䞛更åĨŊįš„僚å€ŧ。 +į„ļ而īŧŒæ‰‹å‹•æ“äŊœæœƒäŊŋæ¯ä¸€å€‹čŽŠåŒ–éƒŊčŊ‰čŽŠį‚ēéĢ˜éĄįš„äē¤æ˜“成æœŦ。 +過åŽģīŧŒį‚ēäē†éŋ免上čŋ°æˆæœŦīŧŒäŧæĨ­į™ŧ布įš„é ģįŽ‡čŧƒäŊŽīŧŒ +在一æŦĄįš„部įŊ˛ä¸­åŒ…åĢ更多įš„čŽŠæ›´īŧŒåŒæ™‚䚟會åĸžåŠ å‡ē錯įš„éĸ¨éšĒ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +CD į­–į•ĨåģēįĢ‹äē†ä¸€å€‹åŽŒå…¨č‡Ē動化įš„į”Ÿį”ĸčˇ¯åž‘īŧŒ +äŊŋį”¨å„į¨Žéƒ¨įŊ˛į­–į•Ĩæ¸ŦčŠĻ和部įŊ˛čģŸéĢ”īŧŒ +åĻ‚ [金įĩ˛é›€éƒ¨įŊ˛](/zh-tw/canary-deployment/) 或 [藍įļ éƒ¨įŊ˛](/zh-tw/blue-green-deployment) 來進行į™ŧ布。 +這äŊŋåž—é–‹į™ŧäēēå“Ąå¯äģĨé ģįšåœ°éƒ¨įŊ˛į¨‹åŧįĸŧīŧŒčŽ“äģ–們攞åŋƒåœ°įĸēäŋæ–°įš„äŋŽč¨‚į‰ˆåˇ˛įļ“過æ¸ŦčŠĻ。 +通常情æŗä¸‹īŧŒCD į­–į•Ĩ中äŊŋį”¨åŸēæ–ŧä¸ģåššįš„é–‹į™ŧæ–šåŧīŧŒč€Œä¸æ˜¯åŠŸčƒŊ分支或拉取čĻæą‚。 + +## į›¸é—œčĄ“čĒž {#related-terms} + +* [持įēŒæ•´åˆ](/zh-tw/continuous-integration/) +* [持įēŒéƒ¨įŊ˛](/zh-tw/continuous-deployment/) diff --git a/content/zh-tw/continuous-deployment.md b/content/zh-tw/continuous-deployment.md new file mode 100644 index 0000000000..78dcdd1361 --- /dev/null +++ b/content/zh-tw/continuous-deployment.md @@ -0,0 +1,29 @@ +--- +title: 持įēŒéƒ¨įŊ˛ (CD) +status: Completed +category: æĻ‚åŋĩ +tags: ["應į”¨į¨‹åŧ", "æ–šæŗ•čĢ–", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +持įēŒéƒ¨įŊ˛īŧŒé€šå¸¸į¸Žå¯Ģį‚ē CDīŧŒåŽƒį›´æŽĨ將厌成įš„čģŸéĢ”部įŊ˛åˆ°æ­Ŗåŧį’°åĸƒīŧŒæ¯”[持įēŒäē¤äģ˜](/zh-tw/continuous-delivery/)æ›´é€˛ä¸€æ­Ĩ。 +持įēŒéƒ¨įŊ˛īŧˆCDīŧ‰čˆ‡[持įēŒæ•´åˆ](/zh-tw/continuous-integration/)īŧˆCIīŧ‰įˇŠå¯†į›¸é—œīŧŒé€šå¸¸čĸĢį¨ąį‚ē CI/CD。 +CI æĩį¨‹į”¨æ–ŧæ¸ŦčŠĻ對į‰šåŽšæ‡‰į”¨į¨‹åŧįš„čŽŠæ›´æ˜¯åĻæ­ŖįĸēīŧŒč€Œ CD æĩį¨‹å‰‡č‡Ē動部įŊ˛įĩ„įš”æ¸ŦčŠĻį’°åĸƒįš„į¨‹åŧįĸŧčŽŠæ›´åˆ°æ­Ŗåŧį’°åĸƒã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į™ŧ布新čģŸéĢ”į‰ˆæœŦ是一個勞動密集且厚易å‡ē錯įš„過į¨‹ã€‚ +通常這䚟äŊŋįĩ„įš”希望į›Ąé‡æ¸›å°‘į™ŧ布新į‰ˆæœŦįš„é ģįŽ‡īŧŒäģĨéŋ免æ­Ŗåŧį’°åĸƒį™ŧį”Ÿäē‹æ•…ä¸Ļ減少åˇĨį¨‹å¸Ģ需čĻåœ¨æ­Ŗ常åˇĨäŊœæ™‚間䚋外提䞛支援įš„æŦĄæ•¸ã€‚ +å‚ŗįĩąįš„čģŸéĢ”部įŊ˛æ¨Ąåž‹čŽ“įĩ„įš”陡å…Ĩä¸€å€‹æƒĄæ€§åžĒį’°īŧŒå…ļ中čģŸéĢ”į™ŧ布įš„過į¨‹į„Ąæŗ•æģŋčļŗįĩ„įš”在įŠŠåŽšæ€§å’ŒåŠŸčƒŊčŋ­äģŖ速åēĻæ–šéĸįš„éœ€æą‚ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +透過č‡Ē動化į™ŧå¸ƒé€ąæœŸä¸Ļåŧˇåˆļįĩ„įš”æ›´é ģįšåœ°å°‡į”ĸ品部įŊ˛åˆ°æ­Ŗåŧį’°åĸƒä¸­īŧŒCD 之æ–ŧįļ­é‹åœ˜éšŠå°ąåƒ CI 之æ–ŧ開į™ŧ團隊一æ¨Ŗ。 +å…ˇéĢ”䞆čĒĒīŧŒåŽƒåŧˇåˆļįļ­é‹åœ˜éšŠč‡Ē動化æ­Ŗåŧéƒ¨įŊ˛ä¸­į—›č‹Ļ且厚易å‡ē錯įš„部分īŧŒåžžč€Œé™äŊŽæ•´éĢ”éĸ¨éšĒ。 +厃還äŊŋįĩ„įš”æ›´å–„æ–ŧæŽĨ受和遊應æ­Ŗåŧį’°åĸƒįš„čŽŠåŒ–īŧŒé€˛č€ŒæéĢ˜įŠŠåŽšæ€§ã€‚ + +## į›¸é—œčĄ“čĒž {#related-terms} + +- [持įēŒæ•´åˆ](/zh-tw/continuous-integration/) +- [持įēŒäē¤äģ˜](/zh-tw/continuous-delivery/) diff --git a/content/zh-tw/continuous-integration.md b/content/zh-tw/continuous-integration.md new file mode 100644 index 0000000000..f8ddc7e02c --- /dev/null +++ b/content/zh-tw/continuous-integration.md @@ -0,0 +1,33 @@ +--- +title: 持įēŒæ•´åˆ (CI) +status: Completed +category: æĻ‚åŋĩ +tags: ["應į”¨į¨‹åŧ", "æ–šæŗ•čĢ–", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +持įēŒæ•´åˆīŧŒé€šå¸¸į¸Žå¯Ģį‚ē CIīŧŒæ˜¯į›Ąå¯čƒŊ厚期整合į¨‹åŧįĸŧ更攚įš„å¯Ļč¸æ–šæŗ•ã€‚ +CI 是 [持įēŒäē¤äģ˜](/zh-tw/continuous-delivery/)īŧˆCDīŧ‰įš„前įŊŽåˇĨäŊœã€‚ +å‚ŗįĩąä¸ŠīŧŒCI įš„æĩį¨‹åžžį¨‹åŧįĸŧ更動提äē¤åˆ°į‰ˆæœŦ控įŽĄīŧˆGit、Mercurial 或 Subversionīŧ‰æ™‚開始īŧŒ +äģĨæē–å‚™čĸĢ CD įŗģįĩąäŊŋį”¨įš„æ¸ŦčŠĻį”ĸå‡ēį‰Šīŧˆtested artifactīŧ‰į›´åˆ°įĩæŸã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +čģŸéĢ”įŗģįĩąé€šå¸¸æ˜¯éžå¤§ä¸”č¤‡é›œįš„īŧŒæœ‰č¨ąå¤šé–‹į™ŧäēēå“Ąåœ¨įļ­č­ˇå’Œæ›´æ–°åŽƒå€‘。 +在įŗģįĩąįš„不同部分同時åˇĨäŊœīŧŒ +這äē›é–‹į™ŧäēēå“Ąå¯čƒŊ會做å‡ēäē’į›¸čĄįĒįš„äŋŽæ”šīŧŒä¸Ļ在į„Ąæ„é–“į ´åŖžå°æ–šįš„åˇĨäŊœã€‚ +此外īŧŒį”ąæ–ŧ多äŊé–‹į™ŧäēēå“Ąåœ¨åŒä¸€å€‹å°ˆæĄˆä¸ŠåˇĨäŊœīŧŒ +äģģäŊ•æ—Ĩ常äģģ務īŧŒåĻ‚æ¸ŦčŠĻå’Œč¨ˆįŽ—į¨‹åŧįĸŧ品čŗĒīŧŒéƒŊ需čĻæ¯äŊé–‹į™ŧäēēå“Ąé‡č¤‡åŸˇčĄŒīŧŒæĩĒč˛ģäē†æ™‚間。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +每į•ļ開į™ŧäēēå“Ąæäē¤äŋŽæ”šæ™‚īŧŒCI čģŸéĢ”會č‡Ē動æĒĸæŸĨį¨‹åŧįĸŧ更動是åĻ合äŊĩåž—åžˆäšžæˇ¨ã€‚ +äŊŋį”¨ CI äŧēæœå™¨äž†åŸˇčĄŒį¨‹åŧįĸŧ品čŗĒæĒĸæŸĨ、æ¸ŦčŠĻį”šč‡ŗ部įŊ˛īŧŒé€™åšžäšŽæ˜¯ä¸€į¨Žæ™Žéå­˜åœ¨įš„做æŗ•ã€‚ +因此īŧŒåŽƒæˆį‚ē團隊內部品čŗĒ控įŽĄįš„å…ˇéĢ”å¯Ļįžæ–šåŧã€‚ +CI 讓čģŸéĢ”團隊čƒŊ將每æŦĄįš„į¨‹åŧįĸŧ提äē¤čŊ‰čŽŠį‚ēå…ˇéĢ”įš„å¤ąæ•—æˆ–å¯į”¨įš„į™ŧ布候選į‰ˆæœŦ。 + +## į›¸é—œčĄ“čĒž {#related-terms} + +* [持įēŒäē¤äģ˜](/zh-tw/continuous-delivery/) +* [持įēŒéƒ¨įŊ˛](/zh-tw/continuous-deployment/) diff --git a/content/zh-tw/contribute/_index.md b/content/zh-tw/contribute/_index.md new file mode 100644 index 0000000000..7eddfc26e6 --- /dev/null +++ b/content/zh-tw/contribute/_index.md @@ -0,0 +1,221 @@ +--- +title: åĻ‚äŊ•åƒčˆ‡č˛ĸįģ +toc_hide: true +status: Completed +menu: + main: + weight: 10 +--- + +## æ­ĄčŋŽ {#welcome} + +æ­ĄčŋŽäŊŋį”¨é›˛įĢ¯åŽŸį”Ÿ Glossary įš„č˛ĸįģ指南īŧŒæ„ŸčŦæ‚¨įš„é—œæŗ¨ã€‚ +您可äģĨ透過äģĨ下斚åŧåƒčˆ‡č˛ĸįģīŧŒæˆ‘å€‘å°‡åœ¨æ­¤é€˛čĄŒčŠŗį´°čĒĒ明īŧš + +1) [在įžæœ‰č­°éĄŒä¸Šé€˛čĄŒåˇĨäŊœ](#work-on-an-existing-issue) +2) [提å‡ēæ–°čĄ“čĒž](#propose-new-terms) +3) [更新įžæœ‰čĄ“čĒž](#update-an-existing-term) +4) [åšĢ劊æœŦ地化 Glossary](#help-localize-the-glossary) + +## CNCF Glossary æĻ‚čŋ° {#cncf-glossary-overview} + +芲 Glossary įš„į›Žæ¨™æ˜¯į°ĄåŒ–č¤‡é›œįš„雲įĢ¯åŽŸį”Ÿé ˜åŸŸīŧŒäŊŋå…ļ更厚易čĸĢäēē們į†č§Ŗ和äŊŋį”¨ã€‚ + +雲įĢ¯åŽŸį”Ÿ Glossary įš„å…§åŽšå­˜å„˛åœ¨[æ­¤ GitHub å­˜å„˛åēĢ](https://github.com/cncf/glossary)中īŧŒ +您可äģĨ在é‚ŖčŖĄæ‰žåˆ°æœ‰é—œ Glossary įš„[議題](https://github.com/cncf/glossary/issues)、拉取čĢ‹æą‚([PRs](https://github.com/cncf/glossary/pulls))和 +[討čĢ–](https://github.com/cncf/glossary/discussions)。 + +## čĒ°å¯äģĨč˛ĸįģīŧŸ {#who-can-contribute} + +您åĻ‚äŊ•åƒčˆ‡æ­¤å°ˆæĄˆå–æąēæ–ŧ您įš„雲įĢ¯åŽŸį”Ÿå°ˆæĨ­įŸĨč­˜æ°´æē–。 +į°ĄåŒ–č¤‡é›œįš„æĻ‚åŋĩ需čĻå°čŠ˛ä¸ģéĄŒæœ‰æˇąå…Ĩįš„äē†č§Ŗ。 +因此īŧŒčĻč˛ĸįģæ–°čĄ“čĒžīŧŒæ‚¨åŋ…é ˆį˛žé€ščŠ˛ä¸ģéĄŒã€‚ +č˛ĸįģč€…é€šå¸¸æ˜¯åœ¨é€™äē›æŠ€čĄ“上åˇĨäŊœäē†ä¸€æŽĩ時間įš„åˇĨį¨‹å¸Ģ或專æŗ¨æ–ŧ雲įĢ¯åŽŸį”Ÿįš„å­¸č€…ã€‚ + +專æĨ­įŸĨč­˜æ˜¯åŋ…需įš„īŧŒå› į‚ēį”¨į°Ąå–Žįš„芹čĒžč§Ŗ釋複雜įš„æĻ‚åŋĩ _įœŸįš„_ 垈é›Ŗã€‚č€Œä¸”īŧŒå„˜įŽĄæ˜“æ–ŧį†č§Ŗįš„įĩæžœå¯čƒŊįœ‹čĩˇäž†åžˆį°Ąå–ŽīŧŒäŊ†é”到所需įš„į°Ąå–Žæ€§éœ€čĻé›˛įĢ¯åŽŸį”Ÿå°ˆåŽļ之間įš„åŠĒ力和協äŊœã€‚ + +åĻ‚果您尚æœĒ成į‚ē雲įĢ¯åŽŸį”Ÿå°ˆåŽļäŊ†äģæƒŗč˛ĸįģīŧŒæˆ‘們åģēč­°čˆ‡å°ˆåŽļ合äŊœã€‚ +一æ—Ļ專åŽļįĸēäŋĄčĄ“čĒžæē–įĸē描čŋ°æĻ‚åŋĩīŧŒæ‚¨å°ąå¯äģĨ做å‡ēįŦŦ一個 Glossary č˛ĸįģ。 + +æœŦ地化åˇĨäŊœæ˜¯į˛žé€šåĻ一į¨ŽčĒžč¨€įš„åˆå­¸č€…å¯äģĨį‚ē Glossary 做å‡ēå¯ļ貴č˛ĸįģįš„地斚。 +借劊įžæœ‰įš„å¯é č‹ąčĒžåŽšįžŠīŧŒįļ“銗不čļŗįš„č˛ĸįģč€…å¯äģĨå°‡čĄ“čĒžæœŦ地化į‚ēį›Žæ¨™čĒžč¨€ã€‚您可äģĨ加å…Ĩįžæœ‰įš„æœŦ地化團隊或å‰ĩåģē新įš„æœŦ地化團隊。 +čĢ‹é–ąčŽ€æœŦ指南中[åšĢ劊æœŦ地化 Glossary](#help-localize-the-glossary) įĢ į¯€īŧŒäē†č§ŖåĻ‚äŊ•é–‹å§‹ã€‚ + +## 開始䚋前 {#before-you-start} + +在開始您įš„ Glossary č˛ĸįģ䚋前īŧŒčĢ‹įĸēčĒåŽŒæˆäģĨ下æ­Ĩ驟īŧš + +1. åģēįĢ‹ [GitHub å¸ŗ號](https://docs.github.com/zh/get-started/signing-up-for-github/signing-up-for-a-new-github-account)īŧŒåĻ‚æžœæ‚¨é‚„æ˛’æœ‰įš„čŠąã€‚ +2. į°ŊįŊ˛[č˛ĸįģč€…æŽˆæŦŠå”č­°(Contributor License Agreement)](https://docs.linuxfoundation.org/lfx/easycla/v2-current/contributors) (CLA)。 +3. [éŠ—č­‰æ‚¨įš„提äē¤į°Ŋ名](https://docs.github.com/zh/authentication/managing-commit-signature-verification/about-commit-signature-verification)。 +4. 啟į”¨ [vigilant mode](https://docs.github.com/zh/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits#about-vigilant-mode) 在您įš„ GitHub å¸ŗæˆļ上īŧŒäģĨéĄ¯į¤ē "Verified" į‹€æ…‹åœ¨æ‚¨įš„提äē¤ä¸Šã€‚ + +## 最äŊŗå¯Ļ踐 {#best-practices} + +į‚ēäē†æ–šäžŋ寊核過į¨‹īŧŒčĢ‹äŊŋį”¨ [semantic line breaks](https://sembr.org/)īŧˆäž‹åĻ‚īŧŒæ¯åĨ話一行īŧ‰ã€‚ +我們åģēč­°æŸĨįœ‹é€™äģŊ [markdown cheat sheet](https://www.markdownguide.org/cheat-sheet/) äģĨæ­Ŗįĸē地在 GitHub 中æ ŧåŧåŒ– Markdown 文æœŦīŧˆäž‹åĻ‚īŧŒčļ…é€Ŗįĩã€į˛—éĢ”、斜éĢ”īŧ‰ã€‚ +ä¸Ļ且在å‘Ŋ名 .md 文äģļ時īŧŒčĢ‹äŊŋį”¨å°å¯Ģ字母和é€Ŗ字įŦĻč€Œä¸æ˜¯įŠēæ ŧäž†åˆ†éš”č­°éĄŒīŧŒéŋ免äŊŋį”¨æ‹Ŧč™Ÿã€‚ + +## éĸ¨æ ŧ指南 {#style-guide} + +é–ąčŽ€æˆ‘å€‘įš„[éĸ¨æ ŧ指南](/zh-tw/style-guide/)äģĨäē†č§Ŗ我們įš„æ ŧåŧå’Œæ’°å¯Ģ文äģļįš„指南īŧŒäŊŋč˛ĸįģæĩį¨‹æ›´åŠ éĢ˜æ•ˆã€‚ + +## 加å…Ĩ Glossary į¤žįž¤īŧ {#join-the-glossary-community} + +åĻ‚果您æƒŗ厚期č˛ĸįģīŧŒčĢ‹č€ƒæ…ŽåŠ å…Ĩ我們įš„ Glossary åˇĨäŊœįĩ„月會。 +您可äģĨ在 [CNCF 行äē‹æ›†](https://www.cncf.io/calendar/)ä¸­æ‰žåˆ°æœƒč­°čŠŗį´°čŗ‡č¨Šã€‚ +您䚟可äģĨ在 CNCF Slack įš„ [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) é ģ道中與įļ­č­ˇäēēå“Ąå’Œå…ļäģ–č˛ĸįģč€…č¯įšĢ - 我們垈樂意čĒč­˜æ‚¨īŧ + +## 在įžæœ‰č­°éĄŒä¸Šé€˛čĄŒåˇĨäŊœ {#work-on-an-existing-issue} + +前垀 [Glossary GitHub å­˜å„˛åēĢįš„č­°éĄŒ](https://github.com/cncf/glossary/issues)扞到可į”¨č­°éĄŒåˆ—čĄ¨ã€‚æ‚¨å¯äģĨäŊŋį”¨æ¨™įą¤īŧˆäž‹åĻ‚īŧŒč‹ąčĒžčĒžč¨€ã€éœ€čĻåšĢåŠŠã€č‰¯åĨŊįš„įŦŦä¸€å€‹č­°éĄŒīŧ‰éŽæŋžč­°éĄŒã€‚ + +![č­°éĄŒå’Œæ¨™įą¤](/images/how-to/issue-and-labels.png) + +įĸēäŋæ‚¨é¸æ“‡įš„襓čĒžé‚„æ˛’æœ‰čĸĢ分配įĩĻäģģäŊ•äēē。䞋åĻ‚īŧŒæ‚¨å¯äģĨįœ‹åˆ°å‰ä¸‰å€‹čĄ“čĒžæ˜¯å¯į”¨įš„īŧŒč€ŒįŦŦå››å€‹čĄ“čĒžåˇ˛čĸĢ分配。 + +![åˆ†é…čĄ“čĒž](/images/how-to/howto-04.png) + +選擇一個čĻč™•į†įš„襓čĒžåžŒīŧŒåœ¨čŠ˛č­°éĄŒä¸Šį™ŧ表評čĢ–。 + +![č˛æ˜Žč­°éĄŒ](/images/how-to/claiming-an-issue.png) + +此外īŧŒčĢ‹åœ¨ CNCF Slack åˇĨäŊœå€įš„ [#glossary](https://cloud-native.slack.com/archives/C02TX20MQBB) é ģ道中通įŸĨįļ­č­ˇč€… +ä¸Ļæ¨™č¨˜ _@iamnoah_、_@nate-double-u_、_@Seokho Son_、_@Jihoon Seo_ 和/或 _@castrojo_īŧŒäģĨįĸēäŋäģ–們不會錯過厃。 + +有關下一æ­ĨīŧŒčĢ‹åƒé–ą[提äē¤æ–°čĄ“čĒžīŧˆå‰ĩåģē PRīŧ‰](#submitting-a-new-term)部分。 + +**æŗ¨æ„**īŧšæ‚¨åĒčƒŊ在įļ­č­ˇäēēå“Ąå°‡č­°éĄŒåˆ†é…įĩĻæ‚¨åžŒé–‹å§‹č™•į†č­°éĄŒã€‚ +您一æŦĄåĒčƒŊč˛æ˜Žä¸€å€‹čĄ“čĒžã€‚ +處į†å¤šå€‹čĄ“čĒžæ˜¯æœ‰é€ŖįēŒæ€§įš„īŧŒåŋ…é ˆåœ¨č˛æ˜Žä¸‹ä¸€å€‹čĄ“čĒžäš‹å‰åŽŒæˆį•ļå‰čĄ“čĒžã€‚ + +## æč­°æ–°čĄ“čĒž {#propose-new-terms} + +您可äģĨ提å‡ēæ–°čĄ“čĒžäž›äģ–äēēį ”įŠļīŧŒæˆ–č‡Ēåˇąå‰ĩåģē新厚įžŠã€‚ +不įŽĄå“Ēį¨Žæ–šåŧīŧŒæ‚¨éƒŊ需čĻåžž[新åĸžč­°éĄŒ](#creating-an-issue)開始。 +æ¯å€‹æ–°čĄ“čĒžåŋ…é ˆįŦĻ合 [CNCF įš„雲įĢ¯åŽŸį”ŸåŽšįžŠ](https://github.com/cncf/toc/blob/main/DEFINITION.md)才čƒŊčĸĢæˇģ加到 Glossary 中。 +唯一įš„䞋外是į†č§Ŗ雲įĢ¯åŽŸį”ŸæĻ‚åŋĩ所需įš„åŸēį¤ŽčĄ“čĒžã€‚ + +äģĨ下是對æ–ŧ不į†Ÿæ‚‰ GitHub įš„äēēįš„逐æ­Ĩ指南。 +**åĻ‚果您是 GitHub 專åŽļ**īŧŒčĢ‹æŽƒææœŦ指南äģĨį˛å–有關äģĨ下ä¸ģ題įš„čļŗ夠čŗ‡č¨Šīŧš + +1. 厚äŊč­°éĄŒå’Œæ–°čĄ“čĒžįš„æ¨Ŗæŋ。 +2. č˛æ˜Žč­°éĄŒã€‚ +3. č§Ŗæąē[æ‹ŧå¯ĢæĒĸæŸĨ](#spell-check)å¤ąæ•—įš„å•éĄŒã€‚ + +### 新åĸžč­°éĄŒ {#creating-an-issue} + +前垀 [Glossary GitHub å­˜å„˛åēĢ](https://github.com/cncf/glossary/issues)議題īŧŒį„ļ垌éģžæ“Š "New issue"。 + +![議題](/images/how-to/howto-01.png) + +åžžæ¨Ŗæŋåˆ—čĄ¨ä¸­é¸æ“‡ "Request to add a new term (English)"。 + +![æ¨Ŗæŋ](/images/how-to/english-issue-template.jpg) + +æˇģ加您åģēč­°įš„å–Žå­—īŧŒå›žį­”č­°éĄŒīŧŒå‹žé¸æ–šæĄ†īŧŒį„ļ垌éģžæ“Š "Submit new issue"。 +åĻ‚果您åĒ是提å‡ēæ–°čĄ“čĒžīŧŒé‚Ŗéēŧæ‚¨åˇ˛įļ“厌成äē†īŧåĻ‚果您æƒŗčĻå‰ĩåģē厚įžŠīŧŒčĢ‹įšŧįēŒé–ąčŽ€ã€‚ + +### įˇŠæ€Ĩ處į†æ‚¨įš„č­°éĄŒ {#triaging-your-issue} + +æŽĨ下來īŧŒįļ­č­ˇč€…å°‡æœƒé€˛čĄŒįˇŠæ€Ĩ處į†ã€‚這意å‘ŗ著äģ–å€‘å°‡čŠ•äŧ°čŠ˛čĄ“čĒžæ˜¯åĻæ‡‰čŠ˛æˆį‚ē Glossary įš„一部分。 +ä¸Ļä¸æ˜¯æ¯å€‹čĄ“čĒžéƒŊ會čĸĢ扚准。č‹ĨčĻį´å…Ĩ GlossaryīŧŒåŽƒå€‘æ‡‰čŠ˛æ˜¯åģēįĢ‹ä¸”åģŖæŗ›äŊŋį”¨įš„雲įĢ¯åŽŸį”ŸæĻ‚åŋĩ。 + +čĢ‹čŽ“įļ­č­ˇč€…įŸĨé“æ‚¨åˇ˛åœ¨ Slack 上提å‡ēæ–°čĄ“čĒžä¸Ļæ¨™č¨˜ _@iamnoah_、_@nate-double-u_、_@Seokho Son_、_@Jihoon Seo_ 和/或 _@castrojo_īŧŒäģĨäžŋäģ–們不會錯過。 +åĻ‚果您æƒŗįˇ¨å¯Ģ厚įžŠīŧŒčĢ‹čŽ“įļ­č­ˇč€…įŸĨ道īŧŒäģ–們會指洞厃įĩĻ您。 + +### 提äē¤æ–°čĄ“čĒžīŧˆå‰ĩåģē PRīŧ‰{#submitting-a-new-term} + +åĻ‚我們įš„[éĸ¨æ ŧ指南](/zh-tw/style-guide/)所čŋ°īŧŒæˆ‘們åŧˇįƒˆåģēč­°å…ˆäŊŋį”¨ Google 文æĒ”或 Word 文æĒ”é€˛čĄŒčĩˇč‰ã€‚ + +一æ—Ļ術čĒžæē–å‚™åĨŊ提äē¤īŧŒčĢ‹čŊ‰åˆ° contentīŧˆåœ¨ <> į¨‹åŧįĸŧ下īŧ‰... + +![content](/images/how-to/howto-05.png) + +...į„ļ垌čŊ‰åˆ° "en" 或您čĻč˛ĸįģįš„čĒžč¨€įš„前兊個字母... + +![čĒžč¨€æ–‡äģļ夞](/images/how-to/howto-06.png) + +...ä¸Ļ選擇 `_TEMPLATE.md` + +![æ¨Ŗæŋ](/images/how-to/howto-07.png) + +複čŖŊ內厚... + +![複čŖŊ內厚](/images/how-to/howto-08.png) + +...į„ļ垌čŋ”回 "en" 文äģļ夞。喎擊 "Add file" ä¸Ļ選擇 "Create new file"。 + +![å‰ĩåģē新文äģļ](/images/how-to/howto-09.png) + +按į…§[最äŊŗå¯Ļ踐](#best-practices)中所čŋ°īŧŒåœ¨ URL 中æˇģåŠ čĄ“čĒžįš„名į¨ąã€‚在名į¨ąįš„æœĢå°žæˇģ加 .md 副æĒ”名īŧˆåĻ‚æžœæ˛’æœ‰æ­¤å‰¯æĒ”名īŧŒæ‚¨å°‡į„Ąæŗ•é čĻŊ文äģļīŧ‰ã€‚ +įžåœ¨åœ¨ä¸‹éĸįš„部分中į˛˜č˛ŧæ¨Ŗæŋ內厚。將厚įžŠæ–‡æœŦįš„å…§åŽšč¤‡čŖŊä¸Ļį˛˜č˛ŧ到文äģļ中。į‚ēäē†éŠ—č­‰æ‚¨åˇ˛æŒ‰į…§[最äŊŗå¯Ļ踐](#best-practices)中所čŋ°äŊŋį”¨ MarkdownīŧŒčĢ‹å–Žæ“Š "Preview"。 + +![最įĩ‚įĸēåŽščĄ“čĒž](/images/how-to/howto-10.png) + +向下æģžå‹•ä¸Ļį‚ē新提äē¤įš„æ–‡äģļå‘Ŋ名。į•ļ您æē–å‚™åĨŊ提äē¤æ™‚īŧŒčĢ‹éģžæ“Š "Commit new file" + +![åŽŒæˆčĄ“čĒž](/images/how-to/howto-10.png) + +垀下æģžå‹•ä¸Ļį‚ē新提äē¤įš„æĒ”æĄˆå‘Ŋ名。į•ļ您æē–å‚™åĨŊ提äē¤æ™‚īŧŒéģžæ“Š "Commit new file" 按鈕... + +![提äē¤æ–°æĒ”æĄˆ](/images/how-to/howto-11.png) + +...įžåœ¨æ‚¨åˇ˛æē–å‚™åĨŊå‰ĩåģē新įš„ PRīŧš + +![å‰ĩåģē PR](/images/how-to/howto-12.png) + +į•ļ您按下 "Create pull request" 按鈕時īŧŒæ‚¨įš„ PR æ‡‰éĄ¯į¤ē在 "Pull requests" 標įą¤ä¸­ã€‚ + +![PRs](/images/how-to/howto-13.png) + +## 更新įžæœ‰čĄ“čĒž {#update-an-existing-term} + +čĻæ›´æ–°įžæœ‰čĄ“čĒžīŧŒæ‚¨å¯äģĨ通過新åĸžč­°éĄŒčĻæą‚更攚īŧŒ +或可äģĨč‡ĒčĄŒé€˛čĄŒæ›´æ”šä¸Ļ提äē¤ PR。 + +### 透過議題čĻæą‚更攚 {#request-a-change-via-an-issue} + +åĻ‚果您æƒŗčĻæ¨™č¨˜čĄ“čĒžįš„č­°éĄŒīŧŒæ‚¨å¯äģĨäŊŋį”¨ CNCF Glossary įļ˛é įš„ "Report issue" 選項。 +在您æƒŗčĻæ¨™č¨˜įš„æĻ‚åŋĩįš„ CNCF 頁éĸ上厚äŊč‡ĒåˇąīŧŒį„ļ垌éģžæ“Š "Report issue"。 +這會č‡Ē動į‚ēæ‚¨æ‰“é–‹ä¸€å€‹č­°éĄŒ + +![å ąå‘Šč­°éĄŒ](/images/how-to/howto-14.png) + +čĢ‹æčŋ°æ‚¨įš„åģēč­°äģĨ及į‚ēäģ€éēŧ需čĻåŽƒå€‘。éģžæ“Šæäē¤īŧŒå°ąåŽŒæˆäē†ã€‚ + +![提äē¤č­°éĄŒ](/images/how-to/howto-15.png) + +### į›´æŽĨæ›´æ–°čĄ“čĒž {#update-a-term-directly} + +č‹ĨčĻäŋŽæ”ščĄ“čĒžä¸Ļ提äē¤åģēč­°īŧŒčĢ‹éģžæ“Š "Edit this page."。 + +![įˇ¨čŧ¯æ­¤é éĸ](/images/how-to/howto-16.png) + +é€™å°‡æ‰“é–‹čĄ“čĒžįš„ GitHub 頁éĸã€‚é€˛čĄŒäŋŽæ”šä¸ĻåģēįĢ‹ PR。 +čĢ‹åƒč€ƒä¸Šéĸįš„[最äŊŗå¯Ļ踐](#best-practices)部分īŧŒ +ä¸Ļé–ąčŽ€æˆ‘å€‘įš„[éĸ¨æ ŧ指南](/zh-tw/style-guide/)äģĨįĸēäŋæ‚¨éĩåžĒ我們įš„指南。 + +## åšĢ劊æœŦ地化 Glossary {#help-localize-the-glossary} + +åĻ‚æžœčĻåšĢåŠŠå°‡čĄ“čĒžčĄ¨æœŦ地化į‚ēį›Žæ¨™čĒžč¨€īŧŒčĢ‹åŠ å…Ĩ CNCF Slack åˇĨäŊœå€ä¸­įš„ [#glossary-localizations](https://cloud-native.slack.com/archives/C02N2RGFXDF)é ģ道īŧŒį„ļ垌į™ŧ送æļˆæ¯įĩĻ我們。 +您可äģĨ加å…Ĩįžæœ‰åœ˜éšŠæˆ–å‰ĩåģē新團隊 +īŧˆčĻæŸĨįœ‹éœ€čĻäģ€éēŧīŧŒčĢ‹é–ąčŽ€æˆ‘們įš„[æœŦ地化指南](https://github.com/cncf/glossary/blob/main/LOCALIZATION.md)īŧ‰ã€‚ +čĢ‹é–ąčŽ€į›Žæ¨™čĒžč¨€įš„**åĻ‚äŊ•åƒčˆ‡č˛ĸįģ**指南īŧŒäģĨäē†č§ŖčŠ˛åœ˜éšŠįš„å…ˇéĢ”č˛ĸįģæĩį¨‹ã€‚ + +## æ‹ŧå¯ĢæĒĸæŸĨ {#spell-check} + +æ‹ŧå¯ĢæĒĸæŸĨ可čƒŊå¤ąæ•—įš„兊個ä¸ģčĻåŽŸå› īŧš + +- PR 中包åĢæ‹ŧå¯Ģ錯čĒ¤ã€‚ +- PR 中包åĢæœĒåœ¨å–Žå­—åˆ—čĄ¨ä¸­č¨ģ冊įš„喎字。 + +čĻå°‡æ–°å–Žå­—æˇģåŠ åˆ°åˆ—čĄ¨ä¸­īŧŒčĢ‹æŒ‰į…§äģĨ下æ­ĨéŠŸé€˛čĄŒæ“äŊœīŧš + +1. 在您įš„ PR 中īŧŒæ‰žåˆ° "wordlist.txt" 文äģļ。 +2. éģžæ“Š "Edit this file" ä¸Ļ按字母順åēæˇģ加įŧē少įš„喎字。 +3. æˇģ加提äē¤æļˆæ¯īŧŒį„ļ垌選擇 "Sign off and propose changes"。 + +**æŗ¨æ„**īŧšæ‹ŧå¯ĢæĒĸæŸĨ不區分大小å¯Ģ。 + +**我們åŸēæ–ŧ [The Good Docs Project](https://thegooddocsproject.dev/)įš„æ¨Ŗæŋ更新äē†æ­¤æŒ‡å—。** diff --git a/content/zh-tw/contributor-ladder/_index.md b/content/zh-tw/contributor-ladder/_index.md new file mode 100644 index 0000000000..822a834411 --- /dev/null +++ b/content/zh-tw/contributor-ladder/_index.md @@ -0,0 +1,122 @@ +--- +title: č˛ĸįģ者階æĸ¯ +toc_hide: true +status: Completed +menu: + main: + weight: 10 +--- + +嗨īŧđŸ‘‹ 感čŦæ‚¨å°č˛ĸįģ CNCF 雲įĢ¯åŽŸį”Ÿ Glossary å°ˆæĄˆæ„Ÿåˆ°čˆˆčļŖ。 +į„ĄčĢ–您č˛ĸįģæ–°čĄ“čĒžã€å”劊æœŦ地化 Glossary 成į‚ē您įš„母čĒžīŧŒ +æˆ–č€…æƒŗčĻåšĢ劊äģ–äēēå…Ĩ門īŧŒéƒŊ有垈多斚åŧæˆį‚ēæ­¤į¤žįž¤įš„æ´ģčēæˆå“Ąã€‚ +æœŦ文æĒ”æĻ‚čŋ°äē†å°ˆæĄˆä¸­įš„不同č˛ĸįģ者角色äģĨåŠéš¨äš‹č€Œäž†įš„聡č˛Ŧ和æŦŠé™ã€‚ + +## 1. č˛ĸįģ者 {#contributors} + +Glossary æ­ĄčŋŽæ‰€æœ‰äēēåƒčˆ‡ã€‚äģģäŊ•äēēåĒčĻæœ‰č˛ĸįģéƒŊ可äģĨ成į‚ē Glossary įš„č˛ĸįģč€…ã€‚æ‰€æœ‰č˛ĸįģ者éƒŊ應éĩ厈 [CNCF 行į‚ēæē–則](https://github.com/cncf/foundation/blob/main/code-of-conduct.md)。 + +有多į¨Žæ–šåŧå¯äģĨč˛ĸįģæ­¤å°ˆæĄˆīŧŒåŒ…æ‹Ŧīŧš + +- **內厚č˛ĸįģ者**īŧšæ”šé€˛įžæœ‰čĄ“čĒžæˆ–æ–°åĸžčĄ“čĒžįš„所有äēēīŧŒ +- **æœŦ地化č˛ĸįģ者**īŧšå”劊將 Glossary įŋģč­¯æˆåĻ一į¨ŽčĒžč¨€įš„äēēīŧŒ +- **åšĢåŠŠč€…**īŧšåœ¨ GitHub、Slack 或å…ļäģ–į¤žįž¤æˆå“Ąéœ€čĻæ”¯æ´æ™‚協劊äģ–äēēįš„äēēīŧŒ +- **大äŊŋ**īŧšåšĢåŋ™å‚ŗé”č¨Šæ¯ã€æ•™č‚˛į¤žįž¤åĻ‚äŊ•č˛ĸįģīŧŒäģĨ及į‚ēäģ€éēŧäģ–å€‘æ‡‰čŠ˛é€™éēŧ做įš„äģģäŊ•äēē。 + +č˛ĸįģč€…å¯äģĨ擔äģģå¤šå€‹č§’č‰˛æˆ–åƒ…å°ˆæŗ¨æ–ŧ一個領域。 +**所有這äē›č˛ĸįģ同į­‰é‡čĻ**和有劊æ–ŧäŋƒé€˛įšæĻŽįš„į¤žįž¤ã€‚ +有關內厚和æœŦ地化č˛ĸįģīŧŒčĢ‹åƒé–ą[åĻ‚äŊ•č˛ĸįģ](/zh-tw/contribute/)和[éĸ¨æ ŧ指南](/zh-tw/style-guide/)。 + +## 2. å¯Šæ ¸č€… {#approvers} + +å¯Šæ ¸č€…æäž› PR įš„回éĨ‹ä¸Ļ核准äģ–們。äģģäŊ•æ´ģčēįš„č˛ĸįģ者éƒŊ可äģĨ成į‚ēå¯Šæ ¸č€…īŧˆåƒčĻ‹[成į‚ēå¯Šæ ¸č€…](#becoming-an-approvers)īŧ‰ã€‚ +Glossary 區分兊į¨Žå¯Šæ ¸č€…īŧšīŧˆ1īŧ‰č‹ąæ–‡ Glossary įš„å¯Šæ ¸č€…å’Œīŧˆ2īŧ‰æœŦ地化團隊įš„å¯Šæ ¸č€…ã€‚ + +Glossary å¯Šæ ¸č€…æ‡‰čŠ˛īŧš + +- 寊核 PR įš„æŠ€čĄ“æē–įĸē性īŧŒ +- 分配č˛ĸįģ者議題ä¸Ļ遊į•ļåœ°æ¨™č¨˜äģ–們īŧŒ +- į‚ēč˛ĸįģč€…æäž›åéĨ‹ä¸Ļ在需čĻæ™‚指導äģ–們īŧŒ +- æ Ąå°å’Œįˇ¨čŧ¯æäē¤ã€‚ + +åĻ‚æžœå¯Šæ ¸č€…ä¸å†æ„ŸčˆˆčļŖ或į„Ąæŗ•åŸˇčĄŒä¸Ščŋ°čˇč˛ŦīŧŒäģ–å€‘æ‡‰čŽ“įļ­č­ˇäēēå“ĄįŸĨ道ä¸Ļ下台。 + +### č‹ąæ–‡ Glossary å¯Šæ ¸č€… {#english-glossary-approvers} + +有三į¨ŽéĄžåž‹įš„å¯Šæ ¸č€…īŧš + +1īŧ‰æ“æœ‰åŧˇå¤§æŠ€čĄ“čƒŒæ™¯įš„å¯Šæ ¸č€…īŧŒ +2īŧ‰å…ˇæœ‰æ‰Žå¯Ļįš„å¯ĢäŊœčƒŊ力įš„å¯Šæ ¸č€…īŧŒ +3īŧ‰į˛žé€šå…Šč€…įš„å¯Šæ ¸č€…ã€‚ + +**æŠ€čĄ“å¯Šæ ¸č€…**īŧšå…ˇæœ‰åŧˇå¤§æŠ€čĄ“čƒŒæ™¯įš„äēē可äģĨ成į‚ēå¯Šæ ¸č€…īŧŒč€Œä¸åŋ…å…ˇå‚™æ‰Žå¯Ļįš„č‹ąæ–‡å¯ĢäŊœčƒŊ力。äŊ†æ˜¯īŧŒåĻ‚æžœäģ–們åŸēæ–ŧæŠ€čĄ“įš„å„Ēéģžæ ¸å‡†äē† PRīŧŒå‰‡åŋ…é ˆįĸēäŋįļ“į”ąä¸€äŊīŧˆįˇ¨čŧ¯īŧ‰å¯Šæ ¸č€…é€˛čĄŒäē†å¯Šæ ¸ã€‚ + +**įˇ¨čŧ¯č€…**īŧšįˇ¨čŧ¯äēēå“Ąæ Ąå°čĄ“čĒžä¸Ļįĸēäŋå…ļæ šæ“šæ¨ŖåŧæŒ‡å—į”¨į°Ąå–Žįš„čĒžč¨€č§Ŗ釋。åĻ‚æžœčĄ“čĒžčĸĢ大量įˇ¨čŧ¯īŧŒįˇ¨čŧ¯äēēå“Ąåŋ…é ˆčĻæą‚æŠ€čĄ“å¯Šæ ¸č€…å†æŦĄå¯Šæ ¸īŧŒäģĨįĸēäŋåĢįžŠæœĒčĸĢ更攚。 + +### æœŦåœ°åŒ–å¯Šæ ¸č€… {#localization-approvers} + +Glossary 還有æœŦåœ°åŒ–å¯Šæ ¸č€…ã€‚é€™äē›æ˜¯æœŦ地化團隊īŧˆįŋģč­¯ Glossary įš„團隊īŧ‰äš‹ä¸€įš„å¯Šæ ¸č€…ã€‚ +æœŦåœ°åŒ–å¯Šæ ¸č€…åƒ…å…č¨ąį‚ēå…ļč‡Ēåˇąįš„åœ˜éšŠåŸˇčĄŒæ ¸å‡†äģģ務īŧŒä¸Ļ有čƒŊ力將 PR 合äŊĩ到å…ļ專åąŦįš„é–‹į™ŧ分支。 +äģģäŊ•æœŦåœ°åŒ–å¯Šæ ¸č€…éƒŊ可äģĨ成į‚ēč‹ąæ–‡ Glossary įš„å¯Šæ ¸č€…īŧŒåĻ‚æžœįŦĻ合čĻæą‚įš„čŠąã€‚ + +### 成į‚ēå¯Šæ ¸č€… {#becoming-an-approvers} + +æ‰šå‡†č€…å€™é¸äēēæ‡‰čŠ˛æœ‰æäē¤éĢ˜å“čŗĒ PR 和åšĢ劊å…ļäģ–äēēäŊŋäģ–們įš„ PR 處æ–ŧ可合äŊĩį‹€æ…‹įš„č‰¯åĨŊč¨˜éŒ„ã€‚ +åĻ‚æžœäģ–們įš„æ™‚å€å…č¨ąīŧŒäģ–們還應厚期參加 [Glossary åˇĨäŊœįĩ„æœƒč­°](https://www.cncf.io/calendar/)。 + +čĻæˆį‚ēå¯Šæ ¸č€…īŧŒéĻ–å…ˆčĻå‘įžæœ‰įļ­č­ˇč€…čĄ¨é”čˆˆčļŖ。 +įžæœ‰įļ­č­ˇč€…å°‡čĻæą‚您在å…ļ指導下č˛ĸįģ PRīŧŒé€˛čĄŒå¯Šæ ¸äģĨåŠåŸˇčĄŒå…ļäģ–æ­¤éĄžäģģ務īŧŒäģĨåą•į¤ē上čŋ°čŗ‡æ ŧ。 +在一æŽĩ時間įš„合äŊœåžŒīŧŒįļ­č­ˇč€…å°‡æąē厚是åĻ授äēˆæ‚¨å¯Šæ ¸č€…å“ĄčēĢäģŊ。 +這個æąē厚將åŸēæ–ŧæ‚¨åą•į¤ēįš„į†Ÿįˇ´į¨‹åēĻ和įŠæĨĩ應對。 + +## 3. įļ­č­ˇč€… {#maintainers} + +įļ­č­ˇč€…是可äģĨ扚准ä¸Ļ合äŊĩ PR įš„å¯Šæ ¸č€…ã€‚äģģäŊ•äēēéƒŊ可äģĨ成į‚ē Glossary įš„įļ­č­ˇč€…īŧˆåƒčĻ‹[成į‚ēįļ­č­ˇč€…](#becoming-a-maintainer)īŧ‰ã€‚ +įļ­č­ˇč€…有一äē›æœŸæœ›īŧŒåŒ…æ‹Ŧīŧš + +- 成į‚ē一個įŠæĨĩå’Œč˛ č˛Ŧäģģįš„å¯Šæ ¸č€…īŧˆåƒčĻ‹ä¸Šæ–‡īŧ‰īŧŒ +- åšĢ劊įļ­č­ˇå­˜å„˛åēĢīŧŒåŒ…æ‹Ŧįļ˛įĢ™é…įŊŽã€æŦŠé™ã€č­°éĄŒ-æ¨Ąæŋ、GitHub åˇĨäŊœæĩį¨‹į­‰īŧŒ +- į›Ŗ控 Glossary Slack é ģ道īŧŒä¸Ļ在可čƒŊįš„情æŗä¸‹æäž›åšĢ劊īŧŒ +- 厚期參加 [Glossary åˇĨäŊœįĩ„æœƒč­°](https://www.cncf.io/calendar/)īŧˆåĻ‚æžœæ™‚å€å…č¨ąīŧ‰ã€‚ + +åĻ‚果一個įļ­č­ˇč€…不再對上čŋ°čˇč˛Ŧæ„ŸčˆˆčļŖ或不čƒŊåŸˇčĄŒīŧŒå‰‡æ‡‰č‡Ē行į§ģ動到名č­Ŋį‹€æ…‹ã€‚ + +### 成į‚ēįļ­č­ˇč€… {#becoming-an-maintainers} + +įļ­č­ˇč€…æ‡‰čŠ˛æœ‰æˆåŠŸįš„å¯Šæ ¸č€…å’Œæäē¤éĢ˜å“čŗĒ PR įš„č‰¯åĨŊč¨˜éŒ„ã€‚ +åĻ‚æžœæ™‚å€å…č¨ąīŧŒäģ–å€‘é‚„æ‡‰čŠ˛åŽšæœŸåƒåŠ  Glossary åˇĨäŊœįĩ„æœƒč­°ã€‚ + +čĻæˆį‚ēįļ­č­ˇč€…īŧŒéĻ–å…ˆčĻå‘įžæœ‰įš„įļ­č­ˇč€…čĄ¨é”čˆˆčļŖ。 +įžæœ‰įš„įļ­č­ˇč€…į„ļ垌會čĻæą‚您在äģ–們įš„æŒ‡å°Žä¸‹åą•į¤ē上čŋ°čŗ‡æ ŧīŧŒåŒ…æ‹Ŧ提äē¤ PRã€é€˛čĄŒå¯Šæ ¸å’ŒåŸˇčĄŒå…ļäģ–äģģ務。 +įļ“過一æŽĩ時間įš„合äŊœīŧŒįļ­č­ˇč€…å°‡æąē厚是åĻ授äēˆįļ­č­ˇč€…čēĢäģŊ。 +這個æąē厚將åŸēæ–ŧæ‚¨åą•į¤ēįš„į†Ÿįˇ´į¨‹åēĻ和反應čƒŊ力。 + +## 4. į¤žįž¤įļ“į† {#community-managers} + +į¤žįž¤įļ“į†å”åŠŠåŸšč‚˛ä¸€å€‹å‹åĨŊ且åŧ•äēēå…Ĩ勝įš„į¤žįž¤ã€‚äģģäŊ•į¤žįž¤æˆå“ĄéƒŊ可äģĨ成į‚ēį¤žįž¤įļ“į†ã€‚äģ–們有äģĨ下職č˛Ŧīŧš + +- æ­ĄčŋŽæ–°æˆå“Ąä¸Ļįĸēäŋäģ–們į˛åž—所需čŗ‡č¨ŠīŧŒ +- 協劊回į­”į¤žįž¤å•éĄŒæˆ–尋扞čƒŊ夠提䞛åšĢ劊įš„äēēīŧŒ +- į›Ŗ控 Slack 上įš„å°čŠąã€‚ + +### 成į‚ēį¤žįž¤įļ“į† {#becoming-an-community-managers} + +äģģäŊ•äēēéƒŊ可äģĨ成į‚ē Glossary į¤žįž¤įļ“į†ã€‚ +į¤žįž¤įļ“į†åŋ…須對č˛ĸįģ和æœŦ地化æĩį¨‹æœ‰æ‰Žå¯Ļįš„į†č§ŖīŧŒä¸Ļå–œæ­Ąčˆ‡äģ–äēēäē’å‹•ä¸Ļ提䞛åšĢ劊。 +čĻæˆį‚ēį¤žå€įļ“į†īŧŒéĻ–å…ˆčĻå‘įžæœ‰įļ­č­ˇč€…čĄ¨é”čˆˆčļŖ。 +在å…Ĩ聡/čŠĻį”¨æœŸåžŒīŧŒįļ­č­ˇäēēå“Ąå°‡æ šæ“ščĄ¨įžæąē厚是åĻ授äēˆį¤žįž¤įļ“į†čēĢäģŊ。 + +## åŧˇåˆļį§ģ除 {#involuntary-removal} + +į•ļč˛ĸįģ者æœĒčƒŊåąĨ行職č˛Ŧ和čĻæą‚時īŧŒå°‡į™ŧį”Ÿåŧˇåˆļį§ģ除。 +這可čƒŊ包æ‹Ŧ反čĻ†į„Ąæ•ˆæ´ģ動īŧŒåģļ長įš„į„Ąæ•ˆæ´ģ動期äģĨ及/æˆ–é•åčĄŒį‚ēæē–則。 +此過į¨‹åžˆé‡čĻīŧŒå› į‚ēäŋč­ˇäē†į¤žįž¤åŠå…ļ成果īŧŒåŒæ™‚䚟開攞äē†æŠŸæœƒčŽ“æ–°įš„č˛ĸįģč€…åŠ å…Ĩ。 + +## 卸äģģ/名č­Ŋæĩį¨‹ {#stepping-down-emeritus-Process} + +åĻ‚果和į•ļč˛ĸįģ者įš„æ‰ŋčĢžį´šåˆĨæ”ščŽŠīŧŒ +č˛ĸįģč€…å¯äģĨč€ƒæ…Žå¸äģģīŧˆé™äŊŽč˛ĸįģč€…éšŽåą¤īŧ‰čˆ‡čŊ‰į‚ē名č­Ŋį‹€æ…‹īŧˆåŽŒå…¨é€€å‡ēå°ˆæĄˆīŧ‰ã€‚ + +## é‡å›žč§’č‰˛ {#stepping-back-into-a-role} + +åĻ‚果有äēē可äģĨ重回䚋前įš„č˛ĸįģ者角色īŧŒå°ˆæĄˆé ˜å°Žč€…可äģĨ厉排ä¸Ļč€ƒæ…Žæ­¤äē‹ã€‚ diff --git a/content/zh-tw/devops.md b/content/zh-tw/devops.md new file mode 100644 index 0000000000..c355b9b23b --- /dev/null +++ b/content/zh-tw/devops.md @@ -0,0 +1,29 @@ +--- +title: DevOps +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +DevOps äģŖ表著į”ąåœ˜éšŠæ“æœ‰æ‡‰į”¨į¨‹åŧé–‹į™ŧīŧˆDevīŧ‰åˆ°æ­Ŗåŧįļ­é‹īŧˆOpsīŧ‰åŽŒæ•´éŽį¨‹įš„一į¨Žæ–šæŗ•čĢ–īŧŒæ‰€äģĨ厃才čĸĢį¨ąäŊœ DevOps。 +DevOps 不åĒ是一åĨ—æŠ€čĄ“įš„運į”¨īŧŒæ›´æ˜¯æ–‡åŒ–čˆ‡æĩį¨‹įš„å…¨éĸčŊ‰čŽŠã€‚ +DevOps čĻæą‚åˇĨį¨‹åœ˜éšŠå°ˆæŗ¨åœ¨æ›´å°įš„å…ƒäģļīŧŒč€Œéžä¸€æŦĄč™•į†æ•´å€‹åŠŸčƒŊīŧŒä¸Ļ且減少äē¤æŽĨįš„æŦĄæ•¸īŧŒå› į‚ēé ģįšįš„äē¤æŽĨæ­Ŗæ˜¯å°Žč‡´éŒ¯čĒ¤įš„常čĻ‹åŽŸå› ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +å‚ŗįĩąä¸ŠīŧŒåœ¨å…ˇæœ‰[įˇŠč€Ļ合](/zh-tw/tightly-coupled-architectures/)[å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧ](/zh-tw/monolithic_apps/)įš„č¤‡é›œįĩ„įš”čŖĄīŧŒåˇĨäŊœé€šå¸¸åˆ†æ•Ŗ在不同įš„團隊䚋間。 +é€™å°Žč‡´åˇĨäŊœéœ€čĻå¤šæŦĄįš„äē¤æŽĨ與æŧĢ長įš„前įŊŽæ™‚é–“īŧˆlead timeīŧ‰ã€‚ +每į•ļ一個元äģļ或更新æē–å‚™å°ąįˇ’時īŧŒåŽƒå°ąæœƒčĸĢ攞到下一個團隊įš„åˇĨäŊœäŊ‡åˆ—中。 +į”ąæ–ŧ每個äēēéƒŊåĒ處į†å°ˆæĄˆįš„一小部分īŧŒč€Œé€™į¨Žæ–šæŗ•å°Žč‡´įŧē䚏所有æŦŠīŧˆownershipīŧ‰ã€‚ +äģ–們įš„į›Žæ¨™å°‡æœƒæ˜¯æŠŠåˇĨäŊœäē¤įĩĻ下一個團隊īŧŒč€Œä¸æ˜¯å‘åŽĸæˆļ提䞛æ­Ŗįĸēįš„功čƒŊīŧŒé€™éĄ¯į„ļ是æœŦæœĢ倒įŊŽã€‚ + +į•ļį¨‹åŧįĸŧįĩ‚æ–ŧ部įŊ˛åˆ°æ­Ŗåŧį’°åĸƒīŧŒæ—Šåˇ˛įļ“æ­ˇäē†č¨ąå¤šįš„é–‹į™ŧäēēå“Ąã€åœ¨įœžå¤šäŊ‡åˆ—中į­‰åž…。 +å‡č¨­æ­¤æ™‚į¨‹åŧįĸŧį„Ąæŗ•é‹čĄŒīŧŒčŋŊæŸĨå•éĄŒæ šå› å°ąæœƒæ˜¯ä¸€äģļ非常困é›Ŗįš„äē‹æƒ…。 +而 DevOps 顛čĻ†äē†ä¸Ščŋ°é€™į¨Žé–‹į™ŧæ–šåŧã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +čŽ“ä¸€å€‹åœ˜éšŠå¯äģĨ擁有應į”¨į¨‹åŧåŽŒæ•´įš„į”Ÿå‘Ŋé€ąæœŸīŧŒå¯å¸ļ來äē¤æŽĨæŦĄæ•¸æœ€å°åŒ–、降äŊŽéƒ¨įŊ˛åˆ°æ­Ŗåŧį’°åĸƒįš„éĸ¨éšĒ、擁有更åĨŊįš„į¨‹åŧįĸŧ品čŗĒīŧˆåĻ‚æžœåœ˜éšŠäšŸč˛ čĩˇį¨‹åŧįĸŧ在æ­Ŗåŧį’°åĸƒé‹čĄŒįš„č˛Ŧäģģīŧ‰īŧŒ +ä¸Ļ且因į‚ē團隊擁有更多įš„č‡Ēä¸ģæŦŠčˆ‡æ‰€æœ‰æŦŠč€ŒæéĢ˜äē†å“ĄåˇĨæģŋ意åēĻ。 diff --git a/content/zh-tw/devsecops.md b/content/zh-tw/devsecops.md new file mode 100644 index 0000000000..279c962ca0 --- /dev/null +++ b/content/zh-tw/devsecops.md @@ -0,0 +1,25 @@ +--- +title: DevSecOps +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "厉全", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +DevSecOps ä¸€čŠžæŒ‡įš„是開į™ŧ、įļ­é‹čˆ‡åŽ‰å…¨č˛Ŧäģģįš„æ–‡åŒ–čžåˆã€‚ +åŽƒæ“´åą•äē† [DevOps](/zh-tw/devops) æ–šæŗ•īŧŒå°‡åŽ‰å…¨å„Ē先äē‹é …į´å…Ĩå…ļ中īŧŒä¸Ļ且對開į™ŧäēēå“Ąå’Œįļ­é‹äēēå“Ąįš„åˇĨäŊœæĩį¨‹å¸ļ䞆最少įš„åš˛æ“žīŧŒį”šč‡ŗ不造成擞äē‚。 +åĻ‚同 DevOpsīŧŒDevSecOps 是一į¨Žæ–‡åŒ–įš„čŊ‰čŽŠīŧŒį”ąæŽĄį”¨įš„æŠ€čĄ“æŽ¨å‹•īŧŒä¸Ļæœ‰č‘—į¨į‰šįš„æŽĄį”¨æ–šæŗ•ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +DevOps įš„å¯Ļč¸åŒ…åĢ[持įēŒæ•´åˆ](/zh-tw/continuous-integration)、[持įēŒäē¤äģ˜](/zh-tw/continuous-delivery/)和[持įēŒéƒ¨įŊ˛](/zh-tw/continuous-deployment)īŧŒä¸Ļ加速應į”¨į¨‹åŧįš„é–‹į™ŧ和į™ŧäŊˆé€ąæœŸã€‚ +可惜įš„是īŧŒį„Ąæŗ•å……分éĢ”įžæ‰€æœ‰įĩ„įš”刊åŽŗ關äŋ‚äēēįš„č‡Ē動化į™ŧäŊˆæĩį¨‹å¯čƒŊæœƒæƒĄåŒ–įžå­˜įš„å•éĄŒã€‚ +一個åŋĢ速į™ŧäŊˆåģæ˛’æœ‰č€ƒé‡åŽ‰å…¨éœ€æą‚įš„æĩį¨‹å¯čƒŊ會降äŊŽįĩ„įš”įš„厉全態å‹ĸ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +DevSecOps 關æŗ¨æ–ŧį ´é™¤åœ˜éšŠé–“įš„隔閥īŧŒäģĨ及äŋƒé€˛åŽ‰å…¨čˆ‡č‡Ē動化åˇĨäŊœæĩį¨‹įš„åģēįĢ‹ã€‚ +在選擇厉全應į”¨į¨‹åŧīŧˆåˇĨå…ˇã€č§Ŗæąēæ–šæĄˆīŧ‰æ™‚īŧŒįĩ„įš”åŋ…須善į”¨č‡Ē動化 CI/CD åˇĨäŊœæĩį¨‹å’Œæ”ŋį­–įš„čŊå¯ĻīŧŒä¸Ļ且į‚ē開į™ŧč€…æäž›æ”¯æŒã€‚ +芲į›Žæ¨™ä¸Ļ非成į‚ēé˜ģį¤™č€…īŧŒč€Œæ˜¯åŽ‰å…¨æ”ŋį­–įš„čŊå¯ĻīŧŒåŒæ™‚įĩĻäēˆäŊŋį”¨č€…åĻ‚äŊ•äŊŋäģ–們įš„å°ˆæĄˆå‘å‰æŽ¨åą•įš„æ­Ŗįĸēčŗ‡č¨Šã€‚ +į•ļ DevSecOps čĸĢ遊į•ļ地å¯Ļæ–ŊīŧŒįĩ„įš”將會į˛åž—æ›´åĨŊįš„團隊æēé€šīŧŒä¸Ļ且減少厉全äē‹æ•…和附å¸ļ成æœŦ。 diff --git a/content/zh-tw/distributed-apps.md b/content/zh-tw/distributed-apps.md new file mode 100644 index 0000000000..ba38decb96 --- /dev/null +++ b/content/zh-tw/distributed-apps.md @@ -0,0 +1,25 @@ +--- +title: 分æ•Ŗåŧæ‡‰į”¨į¨‹åŧ +status: Completed +category: æĻ‚åŋĩ +tags: ["æžļ構", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +分æ•Ŗåŧæ‡‰į”¨į¨‹åŧæ˜¯ä¸€į¨ŽåŠŸčƒŊčĸĢ拆分į‚ē多個čŧƒå°į¨įĢ‹éƒ¨åˆ†įš„應į”¨į¨‹åŧã€‚ +分æ•Ŗåŧæ‡‰į”¨į¨‹åŧé€šå¸¸į”ąį¨įĢ‹įš„[垎服務](/zh-tw/microservices)įĩ„成īŧŒäģĨ處į†æ›´åģŖæŗ›įš„應į”¨į¨‹åŧä¸­įš„ä¸åŒå•éĄŒã€‚ +åœ¨é›˛įĢ¯åŽŸį”Ÿįš„į’°åĸƒä¸­īŧŒé€™äē›į¨įĢ‹å…ƒäģļ通常在[åĸ集](/zh-tw/cluster)中äģĨ[厚器](/zh-tw/container)åŸˇčĄŒã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åœ¨å–Žä¸€č¨ˆįŽ—æŠŸä¸ŠåŸˇčĄŒįš„應į”¨į¨‹åŧäģŖčĄ¨å–Žéģžæ•…éšœ--åĻ‚æžœčŠ˛å°č¨ˆįŽ—抟故障īŧŒæ‡‰į”¨į¨‹åŧå°‡čŽŠåž—不可į”¨ã€‚ +分æ•Ŗåŧæ‡‰į”¨į¨‹åŧé€šå¸¸äŊœį‚ē[å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧ](/zh-tw/monolithic-apps)įš„對比。 +å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧå¯čƒŊé›ŖäģĨæ“´åą•īŧŒå› į‚ē各個元äģļį„Ąæŗ•į¨įĢ‹æ“´åą•ã€‚ +éš¨č‘—å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧįš„åĸžé•ˇīŧŒåŽƒå€‘䚟會拖į´¯é–‹į™ŧ者įš„速åēĻīŧŒå› į‚ē更多įš„é–‹į™ŧ者需čĻåœ¨æœĒåŋ…有明įĸē厚įžŠé‚Šį•Œįš„å…ąäēĢį¨‹åŧįĸŧåēĢ中åˇĨäŊœã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +į•ļ將一個應į”¨į¨‹åŧæ‹†åˆ†į‚ē不同įš„部分ä¸Ļåœ¨č¨ąå¤šåœ°æ–šåŸˇčĄŒīŧŒæ•´å€‹įŗģįĩąčƒŊ夠æ‰ŋ受更多įš„故障。 +åŽƒäšŸå…č¨ąæ‡‰į”¨į¨‹åŧåˆŠį”¨å–Žå€‹æ‡‰į”¨į¨‹åŧå¯Ļäž‹æ‰€ä¸å…ˇå‚™įš„å¯æ“´åą•æ€§īŧŒäšŸå°ąæ˜¯[æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling)。 +į„ļ而īŧŒé€™äšŸéœ€čĻäģ˜å‡ēäģŖ僚īŧšåĸžåŠ č¤‡é›œåēĻ與į‡Ÿé‹é–‹éŠˇ--äŊ įžåœ¨æ­Ŗåœ¨åŸˇčĄŒå¤šå€‹æ‡‰į”¨į¨‹åŧå…ƒäģļīŧŒč€Œéžå–Žä¸€æ‡‰į”¨į¨‹åŧã€‚ diff --git a/content/zh-tw/distributed-systems.md b/content/zh-tw/distributed-systems.md new file mode 100644 index 0000000000..52259c6884 --- /dev/null +++ b/content/zh-tw/distributed-systems.md @@ -0,0 +1,30 @@ +--- +title: 分æ•Ŗåŧįŗģįĩą +status: Completed +category: æĻ‚åŋĩ +tags: ["æžļ構", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +分æ•Ŗåŧįŗģįĩąæ˜¯é€éŽįļ˛čˇ¯é€ŖæŽĨįš„č‡Ēä¸ģ運įŽ—å–Žå…ƒįš„集合īŧŒåžžäŊŋį”¨č€…角åēĻ來įœ‹æ˜¯ä¸€å€‹å–Žä¸€įš„ä¸€č‡´æ€§įŗģįĩąã€‚ +這äē›ä¸€čˆŦčĸĢį¨ąį‚ē[į¯€éģž](/zh-tw/nodes/)įš„å…ƒäģļ可äģĨ是įĄŦéĢ”č¨­å‚™īŧˆäž‹åĻ‚č¨ˆįŽ—æŠŸã€čĄŒå‹•é›ģ芹īŧ‰æˆ–是čģŸéĢ”čĄŒį¨‹ã€‚ +į¯€éģžįļ“į”ąį¨‹åŧč¨­č¨ˆäģĨé”åˆ°ä¸€å€‹å…ąåŒį›Žæ¨™īŧŒį‚ēäē†å”äŊœīŧŒåŽƒå€‘透過įļ˛čˇ¯äē¤æ›č¨Šæ¯ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +įžäģŠå¤§å¤šæ•¸įš„įžäģŖ化應į”¨į¨‹åŧéƒŊ非常鞐大īŧŒéœ€čĻäģĨčļ…į´šč¨ˆįŽ—抟åŽģé‹čĄŒã€‚åƒæ˜¯ Gmail 或是 Netflix。 +æ˛’æœ‰ä¸€å°č¨ˆįŽ—抟čļŗ夠åŧˇå¤§åˆ°å¯äģĨæ‰ŋčŧ‰æ•´å€‹æ‡‰į”¨į¨‹åŧã€‚ +藉į”ąé€ŖæŽĨå¤šå°č¨ˆįŽ—抟īŧŒé‹įŽ—čƒŊ力可äģĨčŽŠåž—æŽĨčŋ‘į„Ąé™å¤§ã€‚ +åĻ‚æžœæ˛’æœ‰åˆ†æ•Ŗåŧé‹įŽ—īŧŒč¨ąå¤šæˆ‘們į›Žå‰äžčŗ´įš„應į”¨į¨‹åŧå°‡į„Ąæŗ•é‹äŊœã€‚ + +å‚ŗįĩąä¸ŠīŧŒįŗģįĩąå¯äģĨ垂į›´[æ“´åą•](/zh-tw/scalability/)ã€‚äšŸå°ąæ˜¯åœ¨å–Žä¸€æŠŸå™¨ä¸ŠåĸžåŠ æ›´å¤š CPU æˆ–č¨˜æ†ļéĢ”。 +垂į›´æ“´åą•į›¸į•ļč€—æ™‚ã€éœ€čĻåœæŠŸīŧŒč€Œä¸”垈åŋĢå°ąæœƒé”åˆ°æĨĩ限。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +分æ•Ŗåŧįŗģįĩąå…č¨ą[æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling/)īŧˆäž‹åĻ‚在需čĻæ™‚對įŗģįĩąåĸžåŠ æ›´å¤šį¯€éģžīŧ‰ã€‚ +這æ¨Ŗ可äģĨč‡Ē動化ä¸Ļå…č¨ąįŗģįĩąč™•į†įĒį„ļåĸžåŠ įš„åˇĨäŊœč˛ čŧ‰æˆ–čŗ‡æēæļˆč€—。 + +非分æ•Ŗåŧįŗģįĩąå°‡č‡ĒčēĢæ›éœ˛åœ¨æ•…éšœįš„éĸ¨éšĒ中īŧŒå› į‚ēåĻ‚果一台抟器故障īŧŒæ•´å€‹įŗģįĩąå°ąæœƒæ•…障。 +分æ•Ŗåŧįŗģįĩąå¯äģĨčĸĢč¨­č¨ˆæˆīŧŒåŗäŊŋ一äē›æŠŸå™¨į™ŧį”Ÿæ•…éšœīŧŒæ•´å€‹įŗģįĩąäģį„ļ可äģĨäŋæŒé‹äŊœä¸Ļį”ĸį”Ÿį›¸åŒįĩæžœã€‚ diff --git a/content/zh-tw/ebpf.md b/content/zh-tw/ebpf.md new file mode 100644 index 0000000000..8a53f7d1b1 --- /dev/null +++ b/content/zh-tw/ebpf.md @@ -0,0 +1,39 @@ +--- +title: eBPF +status: Completed +category: æžļ構 +--- + +## 是äģ€éēŧ {#what-it-is} + +eBPFīŧˆåģļäŧ¸æŸå…‹čŠå°åŒ…į¯Šé¸å™¨īŧ‰æ˜¯ä¸€į¨Žå…č¨ąå°åž‹æ˛™į›’į¨‹åŧæˆ–č…ŗæœŦ在 Linux įŗģįĩąæ ¸åŋƒįŠēé–“åŸˇčĄŒįš„æŠ€čĄ“īŧŒä¸éœ€čĻäŋŽæ”šæ ¸åŋƒåŽŸå§‹įĸŧčŧ‰å…Ĩ Linux æ ¸åŋƒæ¨Ąįĩ„。 + +Linux įŗģįĩąæœ‰å…Šå€‹įŠē間īŧšæ ¸åŋƒįŠē間和äŊŋį”¨č€…įŠē間。 +æ ¸åŋƒįŠē間是äŊœæĨ­įŗģįĩąįš„æ ¸åŋƒīŧŒäšŸæ˜¯å”¯ä¸€å¯äģĨį„Ąé™åˆļ存取įĄŦéĢ”įš„部分。 + +應į”¨į¨‹åŧæœƒåœį•™åœ¨äŊŋį”¨č€…įŠē間īŧŒį•ļ厃們需čĻæ›´éĢ˜æŦŠé™æ™‚īŧŒå°ąæœƒå‘æ ¸åŋƒį™ŧ送čĻæą‚。 +對æ–ŧ需čĻæ›´åŊˆæ€§įš„應į”¨į¨‹åŧīŧŒåƒæ˜¯į›´æŽĨ存取įĄŦéĢ”īŧŒæ ¸åŋƒå¯äģĨ透過所čŦ‚įš„「Linux æ ¸åŋƒæ¨Ąįĩ„ã€é€˛čĄŒæ“´å……ã€‚ +這į¨Žæ–šåŧæ“´å……äē†æ ¸åŋƒįš„é č¨­åŠŸčƒŊīŧŒå…č¨ąæ‡‰į”¨į¨‹åŧæ›´æˇąåēĻ地存取åē•åą¤å…ƒäģļ。 +不過īŧŒé€™į¨Žæ–šæŗ•äšŸæœƒå¸ļ䞆厉全éĸ¨éšĒīŧŒå› æ­¤ eBPF 成į‚ē更有吸åŧ•åŠ›įš„æ›ŋäģŖæ–šæĄˆã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +通常į‹€æŗä¸‹īŧŒæ‡‰į”¨į¨‹åŧåœ¨äŊŋį”¨č€…įŠēé–“åŸˇčĄŒīŧŒåĻ‚果應į”¨į¨‹åŧéœ€čĻæ ¸åŋƒįš„某äē›æŦŠé™īŧˆE.g. 存取某äē›įĄŦéĢ”īŧ‰īŧŒ +會透過「įŗģįĩąå‘ŧåĢ」向核åŋƒæå‡ēčĢ‹æą‚。 +在大多數情æŗä¸‹īŧŒé€™į¨Žæ–šæŗ•éƒŊčƒŊæ­Ŗå¸¸åŸˇčĄŒã€‚ä¸éŽīŧŒåœ¨æŸäē›æƒ…æŗä¸‹īŧŒé–‹į™ŧäēēå“Ąéœ€čĻæ›´éˆæ´ģįš„äŊŽéšŽįŗģįĩąå­˜å–æ–šåŧã€‚ +å¯č§€å¯Ÿæ€§ã€åŽ‰å…¨æ€§å’Œįļ˛čˇ¯åŠŸčƒŊå°ąæ˜¯åžˆåĨŊįš„į¯„䞋。 +į‚ēæ­¤īŧŒæˆ‘們可äģĨäŊŋį”¨ Linux æ ¸åŋƒæ¨Ąįĩ„īŧŒåœ¨ä¸äŋŽæ”šæ ¸åŋƒåŽŸå§‹įĸŧįš„情æŗä¸‹åģļäŧ¸æ ¸åŋƒåŸēį¤Žã€‚ +雖į„ļäŊŋį”¨ Linux æ ¸åŋƒæ¨Ąįĩ„有垈多åĨŊ處īŧŒäŊ†äšŸæœƒå¸ļ䞆厉全éĸ¨éšĒ。 +į”ąæ–ŧ Linux æ ¸åŋƒæ¨Ąįĩ„在核åŋƒįŠēé–“å…§åŸˇčĄŒīŧŒåŽƒå€‘可čƒŊæœƒå°Žč‡´æ ¸åŋƒå´ŠæŊ°īŧŒč€Œæ ¸åŋƒä¸€æ—Ļå´ŠæŊ°īŧŒæ•´å€‹æŠŸå™¨äšŸæœƒį•ļ抟。 +此外īŧŒæ ¸åŋƒæ¨Ąįĩ„擁有更éĢ˜įš„æŦŠé™īŧŒå¯äģĨį›´æŽĨ存取įŗģįĩąčŗ‡æēã€‚åĻ‚æžœæ˛’æœ‰éŠį•ļįš„厉全äŋč­ˇīŧŒæ”ģæ“Šč€…å°ąæœƒåˆŠį”¨é€™äē›æŧæ´žã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +eBPF 提䞛比 Linux æ ¸åŋƒæ¨Ąįĩ„更可控įš„į’°åĸƒīŧŒäģĨåŸˇčĄŒäŊŋį”¨č€…č‡Ē訂įš„į¨‹åŧã€‚ +厃在核åŋƒįš„æ˛™į›’į’°åĸƒä¸­åŸˇčĄŒīŧŒæäž›éš”é›ĸä¸Ļ降äŊŽéĸ¨éšĒ。 +åĻ‚æžœæŧæ´žæˆ–įŧēå¤ąåœ¨ eBPF į¨‹åŧä¸­čĸĢ刊į”¨īŧŒå…ļåŊąéŸŋ通常僅限æ–ŧæ˛™į›’į’°åĸƒã€‚ +此外īŧŒåœ¨ eBPF į¨‹åŧé–‹å§‹åœ¨æ ¸åŋƒä¸­åŸˇčĄŒäš‹å‰īŧŒåŽƒåŋ…須通過一äē›éŠ—č­‰ã€‚ +éŠ—č­‰å™¨å…ƒäģļ會æĒĸæŸĨ eBPF į¨‹åŧæ˜¯åĻ存在æŊ›č—įš„厉全違čĻčĄŒį‚ēīŧŒ +像是違čĻå­˜å–č¨˜æ†ļéĢ”、į„ĄįĒŽčŋ´åœˆå’ŒæœĒįļ“授æŦŠįš„æ ¸åŋƒå‡Ŋåŧã€‚ +這æ¨ŖåŽƒå°ąčƒŊįĸēäŋį¨‹åŧä¸æœƒé€˛å…Ĩį„ĄįĒŽčŋ´åœˆä¸Ļå°Žč‡´æ ¸åŋƒå´ŠæŊ°ã€‚ +與 Linux æ ¸åŋƒæ¨Ąįĩ„į›¸æ¯”īŧŒé€™äē›åŽ‰å…¨æŽ§åˆļæŽĒæ–ŊäŊŋ eBPF 成į‚ē在 Linux æ ¸åŋƒä¸­åŸˇčĄŒæ‡‰į”¨į¨‹åŧæ›´åŽ‰å…¨įš„選擇。 diff --git a/content/zh-tw/edge-computing.md b/content/zh-tw/edge-computing.md new file mode 100644 index 0000000000..1183ce33ac --- /dev/null +++ b/content/zh-tw/edge-computing.md @@ -0,0 +1,29 @@ +--- +title: 邊įˇŖ運įŽ— +status: Completed +category: Technology +--- + +## 是äģ€éēŧ {#what-it-is} + +邊įˇŖ運įŽ—是個[分æ•Ŗåŧįŗģįĩą](/zh-tw/distributed-systems/)īŧŒåŽƒå°‡ä¸€äē›å„˛å­˜å’Œé‹įŽ—čŗ‡æēåžžä¸ģčĻčŗ‡æ–™ä¸­åŋƒčŊ‰į§ģ到čŗ‡æ–™äž†æēã€‚ +æ”ļ集到įš„čŗ‡æ–™åœ¨æœŦ地įĢ¯īŧˆäž‹åĻ‚īŧšåˇĨåģ ã€å•†åē—或整åē§åŸŽå¸‚īŧ‰é€˛čĄŒč¨ˆįŽ—īŧŒč€Œä¸æ˜¯å‚ŗ送到集中åŧčŗ‡æ–™ä¸­åŋƒé€˛čĄŒč™•į†å’Œåˆ†æžã€‚ +這äē›æœŦ地įĢ¯č™•į†å–Žå…ƒæˆ–čŖįŊŽäģŖ襨įŗģįĩąįš„é‚ŠįˇŖīŧŒč€Œčŗ‡æ–™ä¸­åŋƒå‰‡äģŖ襨įŗģįĩąįš„中åŋƒã€‚ +邊įˇŖ計įŽ—å‡ēįš„įĩæžœæœƒčĸĢ送回ä¸ģčĻčŗ‡æ–™ä¸­åŋƒåšé€˛ä¸€æ­Ĩ處į†ã€‚ +邊įˇŖ運įŽ—įš„䞋子包æ‹Ŧæ‰‹č…•ä¸Šįš„小配äģļ或分析äē¤é€šæĩé‡įš„é›ģč…Ļ。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +過åŽģ十嚴中īŧŒæˆ‘們可äģĨįœ‹åˆ°čļŠäž†čļŠå¤šįš„é‚ŠįˇŖčŖįŊŽīŧˆäž‹åĻ‚īŧšæ‰‹æŠŸã€æ™ē慧型手éŒļ、感æ¸Ŧ器īŧ‰ã€‚ +在某äē›æƒ…æŗä¸‹īŧŒåŗ時čŗ‡æ–™č™•į†ä¸åƒ…是一個不錯įš„選擇īŧŒč€Œä¸”æĨĩå…ļ重čĻã€‚ +æƒŗæƒŗč‡Ē動駕駛įš„æąŊčģŠã€‚ +įžåœ¨æƒŗ像一下īŧŒæąŊčģŠæ„Ÿæ¸Ŧ器įš„čŗ‡æ–™åŋ…須先å‚ŗ送到čŗ‡æ–™ä¸­åŋƒé€˛čĄŒč™•į†īŧŒį„ļ垌再送回æąŊčģŠīŧŒé€™æ¨ŖæąŊčģŠæ‰čƒŊäŊœå‡ē遊į•ļįš„反應。 +åĻ‚æ­¤į”ĸį”Ÿįš„įļ˛čˇ¯åģļé˛æœƒæ˜¯č‡´å‘Ŋįš„。 +雖į„ļ這是一個æĨĩįĢ¯įš„䞋子īŧŒäŊ†å¤§å¤šæ•¸äŊŋį”¨č€…éƒŊä¸éĄ˜æ„äŊŋį”¨į„Ąæŗ•åŗ時反應įš„æ™ēæ…§č¨­å‚™ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +åĻ‚上所čŋ°īŧŒčĻäŊŋ邊įˇŖč¨­å‚™į™ŧ揎äŊœį”¨īŧŒåŽƒå€‘åŋ…é ˆč‡ŗ少在æœŦ地įĢ¯åŽŒæˆéƒ¨åˆ†č™•į†å’Œåˆ†æžåˇĨäŊœīŧŒäģĨäžŋæ–ŧ對äŊŋį”¨č€…提䞛æŽĨčŋ‘åŗ時įš„回éĨ‹ã€‚ +čĻåšåˆ°é€™éģžīŧŒå°ąåŋ…須將čŗ‡æ–™ä¸­åŋƒįš„éƒ¨åˆ†å„˛å­˜å’Œč™•į†čŗ‡æēčŊ‰į§ģ到čŗ‡æ–™į”Ÿį”ĸ地īŧšé‚ŠįˇŖč¨­å‚™ã€‚ +åˇ˛č™•į†å’ŒæœĒ處į†įš„čŗ‡æ–™éš¨åžŒį™ŧ送到čŗ‡æ–™ä¸­åŋƒåšé€˛ä¸€æ­Ĩ處į†å’Œå„˛å­˜ã€‚ +į°Ąč€Œč¨€äš‹īŧŒæ•ˆįŽ‡å’Œé€ŸåēĻ是邊įˇŖ運įŽ—įš„ä¸ģčĻéŠ…動力。 diff --git a/content/zh-tw/function-as-a-service.md b/content/zh-tw/function-as-a-service.md new file mode 100644 index 0000000000..b662f47d99 --- /dev/null +++ b/content/zh-tw/function-as-a-service.md @@ -0,0 +1,34 @@ +--- +title: å‡Ŋåŧåŗ服務 (FaaS) +status: Completed +category: æŠ€čĄ“ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +å‡Ŋåŧåŗ服務 (FaaS) 是一į¨Ž[į„Ąäŧē服器](/zh-tw/serverless/)įš„[雲įĢ¯é‹įŽ—](/zh-tw/cloud-computing/)[服務](/zh-tw/service/)īŧŒ +厃可äģĨ在į‰šåŽšäē‹äģļ觸į™ŧæ™‚åŸˇčĄŒį¨‹åŧįĸŧīŧŒ +而į„Ąéœ€åŽģįļ­č­ˇå¸¸čĻ‹æ–ŧåģēįŊŽčˆ‡į™ŧäŊˆ[垎服務](/zh-tw/microservices/)應į”¨į¨‹åŧæ‰€éœ€įš„č¤‡é›œåŸēį¤Žč¨­æ–Ŋ。 +在 FaaS įš„運äŊœæ¨Ąåŧä¸‹īŧŒäŊŋį”¨č€…åĒ需專æŗ¨æ–ŧįŽĄį†č‡Ēåˇąįš„功čƒŊ和čŗ‡æ–™īŧŒæ‡‰į”¨į¨‹åŧįš„å…ļäģ–įŽĄį†åˇĨäŊœå‰‡äē¤į”ąé›˛įĢ¯æœå‹™æäž›å•†äž†č™•į†ã€‚ +這į¨Žæœå‹™ä¸åƒ…莓開į™ŧč€…å¯äģĨ取垗äģ–們所需įš„功čƒŊäģĨ外īŧŒč€Œä¸”在į¨‹åŧįĸŧä¸åŸˇčĄŒæ™‚īŧŒäšŸį„Ąéœ€æ”¯äģ˜éĄå¤–įš„服務č˛ģį”¨ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +在å‚ŗįĩąįš„地įĢ¯į’°åĸƒä¸­īŧŒäŧæĨ­éœ€čĻč‡Ē行įŽĄį†å’Œįļ­č­ˇå…ļčŗ‡æ–™ä¸­åŋƒã€‚ +äŧæĨ­åŋ…須投čŗ‡æ–ŧäŧēæœå™¨ã€å„˛å­˜įŠē間、čģŸéĢ”å’Œå…ļäģ–æŠ€čĄ“å¤–īŧŒ +可čƒŊ需čĻč˜čĢ‹ IT äēēå“Ąæˆ–æ˜¯å¤–åŒ…å•†äž†čŗŧč˛ˇã€įŽĄį†ä¸Ļ升į´šæ‰€æœ‰įš„č¨­å‚™å’ŒäŊŋį”¨æŽˆæŦŠã€‚ +在這į¨Žæƒ…æŗä¸‹īŧŒčŗ‡æ–™ä¸­åŋƒåŋ…須配įŊŽčļŗ夠įš„čŗ‡æēäģĨ應對éĢ˜åŗ°éœ€æą‚īŧŒåŗäŊŋ在åˇĨäŊœé‡æ¸›å°‘、čŗ‡æēé–’įŊŽæ™‚䚟é›ŖäģĨéŋ免。 +åč§€īŧŒč‹ĨäŧæĨ­æĨ­å‹™åŋĢé€Ÿæ“´åą•īŧŒIT 部門可čƒŊ又éĸ臨čŗ‡æēį„Ąæŗ•åŗ時提䞛įš„å›°åĸƒã€‚ +在標æē–įš„[åŸēį¤Žč¨­æ–Ŋåŗ服務 (IaaS)](/zh-tw/infrastructure-as-a-service/) 雲įĢ¯é‹įŽ—æ¨Ąåž‹ä¸‹īŧŒ +į”¨æˆļ會預先čŗŧ財į‰šåŽšåŽšé‡īŧŒåŗ襨į¤ēäŊ éœ€čĻį‚ēäŋæŒæ‡‰į”¨į¨‹åŧé‹čĄŒæ‰€éœ€įš„äŧē服器元äģļ支äģ˜įĩĻå…Ŧå…ąé›˛įĢ¯æœå‹™æäž›å•†ã€‚ +åœ¨éœ€æą‚åĸžå¤§æ™‚īŧŒį”¨æˆļåŋ…須擴充äŧē服器厚量īŧ›éœ€æą‚降äŊŽæ™‚īŧŒå‰‡éœ€é™äŊŽåŽšé‡ã€‚ +åŗäŊŋ應į”¨į¨‹åŧä¸ĻæœĒ在čĸĢäŊŋį”¨īŧŒäŊ†é‹čĄŒčŠ˛æ‡‰į”¨į¨‹åŧæ‰€éœ€įš„雲įĢ¯åŸēį¤Žč¨­æ–ŊäģčĻæŒįēŒé‹äŊœã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +FaaS į‚ē開į™ŧč€…æäž›äē†ä¸€į¨Ž[æŠŊ蹥](/zh-tw/abstraction/)īŧŒäŊŋäģ–們čƒŊ夠在į„Ąéœ€įŽĄį†äŧē服器įš„情æŗä¸‹īŧŒå¯äģĨæ šæ“šäē‹äģļ來運行įļ˛čˇ¯æ‡‰į”¨į¨‹åŧã€‚ +äģĨæĒ”æĄˆä¸Šå‚ŗį‚ē例īŧŒé€™å€‹å‹•äŊœå¯čƒŊæœƒč§¸į™ŧ一æŽĩč‡Ē厚įžŠįš„į¨‹åŧįĸŧīŧŒčŠ˛į¨‹åŧįĸŧ將原始æĒ”æĄˆčŊ‰æ›æˆå¤šį¨Žæ ŧåŧã€‚ +對æ–ŧ大量äŊŋį”¨įš„į¨‹åŧįĸŧīŧŒFaaS įš„åŸēį¤Žč¨­æ–ŊčƒŊč‡Ēå‹•æ“´åą•īŧŒ +į„Ąéœ€é–‹į™ŧ者花č˛ģ時間和čŗ‡æēåŽģ設計į¨‹åŧįĸŧįš„[å¯æ“´åą•æ€§](/zh-tw/scalability/)。 +計č˛ģæ¨Ąåŧå‰‡æ˜¯æ šæ“šé‹įŽ—æ™‚é–“äž†č¨ˆįŽ—īŧŒé€™čĄ¨į¤ēäŧæĨ­åœ¨åŠŸčƒŊæœĒäŊŋį”¨æ™‚īŧŒå°ąä¸åŋ…支äģ˜äģģäŊ•č˛ģį”¨ã€‚ diff --git a/content/zh-tw/horizontal-scaling.md b/content/zh-tw/horizontal-scaling.md new file mode 100644 index 0000000000..c7880fe951 --- /dev/null +++ b/content/zh-tw/horizontal-scaling.md @@ -0,0 +1,32 @@ +--- +title: æ°´åšŗæ“´åą• +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +æ°´åšŗæ“´åą•æ˜¯ä¸€į¨Žé€éŽåŠ å…Ĩ更多[į¯€éģž](/zh-tw/nodes/)č€Œéžå°å–Žä¸€į¯€éģžåŠ å…Ĩæ›´å¤šč¨ˆįŽ—čŗ‡æēäž†æå‡įŗģįĩąåŽšé‡įš„æŠ€čĄ“īŧˆåžŒč€…į¨ąį‚ē[垂į›´æ“´åą•](/zh-tw/vertical-scaling/)īŧ‰ã€‚ +å‡č¨­æˆ‘å€‘æœ‰ä¸€å€‹ 4GB RAM įš„įŗģįĩąīŧŒä¸Ļ且æƒŗčĻæå‡å…ļ厚量到 16GB RAMīŧŒæ°´åšŗæ“´åą•äģŖ襨įš„是加å…Ĩ 4 X 4GB RAM įš„įŗģįĩąč€Œéžåˆ‡æ›åˆ°ä¸€å° 16GB RAM įš„įŗģįĩąã€‚ + +這į¨Žæ–šåŧé€éŽæˇģ加更多å¯Ļ䞋或[į¯€éģž](/zh-tw/nodes)䞆提升應į”¨į¨‹åŧįš„效čƒŊīŧŒäģĨ達到更åĨŊįš„åˇĨäŊœč˛ čŧ‰ã€‚ +į°Ąå–Žäž†čĒĒīŧŒå…ļį›Žįš„是減少äŧē服器įš„負čŧ‰č€Œéžæ“´å……喎一äŧē服器上įš„厚量。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +éš¨č€…å°æ‡‰į”¨į¨‹åŧæˆé•ˇįš„éœ€æą‚čļ…čļŠčŠ˛æ‡‰į”¨į¨‹åŧįš„į•ļ前厚量īŧŒ +我們需čĻæ‰žåˆ°ä¸€į¨Žæ–šåŧäž†[æ“´åą•](/zh-tw/scalability/)īŧˆåĸžåŠ åŽšé‡īŧ‰įŗģįĩąã€‚ +我們可äģĨ加å…Ĩ更多į¯€éģžåˆ°įŗģįĩąä¸­īŧˆæ°´åšŗæ“´åą•īŧ‰æˆ–是加å…Ĩæ›´å¤šč¨ˆįŽ—čŗ‡æēåˆ°įžæœ‰į¯€éģžä¸Šīŧˆåž‚į›´æ“´åą•īŧ‰ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +æ°´åšŗæ“´åą•å…č¨ąæ‡‰į”¨į¨‹åŧåœ¨åē•åą¤åĸ集įš„限åˆļį¯„圍中åŽģæ“´åą•ã€‚ +透過加å…Ĩ更多įš„å¯Ļ䞋到įŗģįĩąä¸­īŧŒæ‡‰į”¨į¨‹åŧčƒŊå¤ č™•į†æ›´å¤ščĢ‹æą‚。 +åĻ‚果喎一į¯€éģžæ¯į§’可äģĨ處į† 1000 個čĢ‹æą‚īŧŒå‰‡æ¯ä¸€å€‹éĄå¤–įš„į¯€éģžéƒŊčƒŊå¤ čŽ“æ¯į§’å¤šč™•į†å¤§į´„ 1000 個čĢ‹æą‚。 +這äŊŋ垗應į”¨į¨‹åŧå¯åœ¨ä¸åŠ å…Ĩ更多厚量到äģģäŊ•į¯€éģžįš„情æŗä¸‹åŽģåŒæ™‚åŸˇčĄŒæ›´å¤šåˇĨäŊœã€‚ + +## į›¸é—œčŠžåŊ™ {#relatead-terms} + +* [垂į›´æ“´åą•](/zh-tw/vertical-scaling/) +* [č‡Ēå‹•æ“´åą•](/zh-tw/auto-scaling/) diff --git a/content/zh-tw/idempotence.md b/content/zh-tw/idempotence.md new file mode 100644 index 0000000000..9a3c56ab91 --- /dev/null +++ b/content/zh-tw/idempotence.md @@ -0,0 +1,9 @@ +--- +title: å†Ēį­‰ +status: Completed +category: åąŦ性 +tags: ["åąŦ性", "", ""] +--- + +在數學或é›ģč…Ļį§‘學中īŧŒå†Ēį­‰čĸĢį”¨äž†æčŋ°į„ĄčĢ–åŸˇčĄŒå¤šå°‘æŦĄéƒŊ會有į›¸åŒįĩæžœįš„操äŊœã€‚ +åĻ‚果參數į›¸åŒīŧŒå¤šæŦĄåŸˇčĄŒå†Ēį­‰æ“äŊœéƒŊ不會į”ĸį”ŸéĄå¤–效果。 diff --git a/content/zh-tw/kubernetes.md b/content/zh-tw/kubernetes.md new file mode 100644 index 0000000000..f9f47ee4f7 --- /dev/null +++ b/content/zh-tw/kubernetes.md @@ -0,0 +1,51 @@ +--- +title: Kubernetes +status: Completed +category: æŠ€čĄ“ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +Kubernetes īŧˆé€šå¸¸į¸Žå¯Ģį‚ē K8sīŧ‰æ˜¯ä¸€å€‹é–‹æēįš„厚器協čĒŋåˇĨå…ˇã€‚ +厃可äģĨ在įžäģŖåŸēį¤Žč¨­æ–Ŋ上č‡Ē動įŽĄį†åŽšå™¨åŒ–應į”¨į¨‹åŧįš„į”Ÿå‘Ŋé€ąæœŸīŧŒ +å°ąåƒä¸€å€‹čƒŊ夠在[分æ•Ŗåŧįŗģįĩą](/zh-tw/distributed-systems/)中įŽĄį†æ‡‰į”¨į¨‹åŧįš„「čŗ‡æ–™ä¸­åŋƒäŊœæĨ­įŗģįĩąã€ã€‚ + +Kubernetes 會在[åĸ集](/zh-tw/cluster/)įš„[į¯€éģž](/zh-tw/nodes/)間對[厚器](/zh-tw/container/)å€‘é€˛čĄŒæŽ’į¨‹īŧŒ +ä¸Ļįĩåˆå¤šå€‹åŸēį¤Žč¨­æ–Ŋ上įš„čŗ‡æēīŧŒ +例åĻ‚負čŧ‰åšŗčĄĄå™¨ã€æŒäš…æ€§å„˛å­˜įŠē間į­‰į­‰īŧŒ +äž†åŸˇčĄŒåŽšå™¨åŒ–įš„應į”¨į¨‹åŧã€‚ + +Kubernetes å…ˇæœ‰č‡Ēå‹•åŒ–å’Œå¯æ“´åą•įš„į‰šæ€§īŧŒ +讓äŊŋį”¨č€…čƒŊ夠äģĨ可重įžįš„åŽŖ告åŧč¨­åŽšäž†éƒ¨įŊ˛æ‡‰į”¨į¨‹åŧīŧˆčĢ‹čĻ‹ä¸‹æ–‡īŧ‰ã€‚ +įļ“éŠ—čąå¯Œįš„ Kubernetes åžžæĨ­äēēå“Ąå¯äģĨæ šæ“šå…ļéœ€æą‚īŧŒ +透過厃įš„ [API](/zh-tw/application-programming-interface/) 䞆刊į”¨å…ļč‡Ē動化功čƒŊé€˛čĄŒæ“´åą•ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +é•ˇæœŸäģĨ來īŧŒåŸēį¤Žč¨­æ–Ŋč‡Ē動化和åŽŖ告åŧč¨­åŽšįŽĄį†ä¸€į›´æ˜¯é‡čĻįš„æĻ‚åŋĩīŧŒ +äŊ†éš¨č‘—[雲įĢ¯é‹įŽ—](/zh-tw/cloud-computing/)įš„晎及īŧŒé€™äē›æĻ‚åŋĩčŽŠåž—æ›´åŠ åœ°čŋĢ切。 +éš¨č‘—å°é‹įŽ—čŗ‡æēįš„éœ€æą‚åĸžåŠ īŧŒ +įĩ„įš”需čĻæ›´å¤šįš„įļ­é‹čƒŊ力īŧŒåŒæ™‚又čĻæ›´å°‘įš„åˇĨį¨‹å¸Ģ數量īŧŒ +因此新įš„æŠ€čĄ“å’ŒåˇĨäŊœæ–šåŧäžŋčŽŠåž—ä¸å¯æˆ–įŧē。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +Kubernetes 與å‚ŗįĩą[åŸēį¤Žč¨­æ–Ŋåŗį¨‹åŧįĸŧ](/zh-tw/infrastructure-as-code/)įš„åˇĨå…ˇéĄžäŧŧīŧŒéƒŊ有劊æ–ŧč‡Ē動化īŧŒ +äŊ† Kubernetes å…ˇæœ‰äŊŋį”¨åŽšå™¨įš„å„Ēå‹ĸ。 +因此比[虛æ“Ŧ抟器](/zh-tw/virtual-machine/)或å¯ĻéĢ”抟器更不厚易å‡ēįžįĩ„æ…‹æŧ‚į§ģ。 + +此外īŧŒKubernetes 是透過åŽŖ告åŧč¨­åŽšäž†é‹äŊœįš„īŧŒ +這意å‘ŗč‘—æ“äŊœč€…ä¸Ļéžå‘Šč¨´æŠŸå™¨æ‡‰čŠ˛čĻåŸˇčĄŒäģ€éēŧ指äģ¤īŧŒ +č€Œæ˜¯æčŋ°åŸēį¤Žč¨­æ–Ŋæ‡‰čŠ˛čĻé•ˇäģ€éēŧæ¨Ŗ子īŧ› +通常是透過清喎æĒ”æĄˆīŧˆäž‹åĻ‚ YAMLīŧ‰įš„åŊĸåŧäž†é€˛čĄŒæčŋ°ã€‚ +į„ļ垌īŧŒKubernetes äžŋ會č‡ĒčĄŒåŽŒæˆã€ŒåĻ‚äŊ•é”成這個æ¨Ŗ子」įš„部分。 +這äŊŋåž— Kubernetes čƒŊ垈åĨŊ地į›¸åŽšæ–ŧ「åŸēį¤Žč¨­æ–Ŋåŗį¨‹åŧįĸŧ」。 + +Kubernetes é‚„å…ˇæœ‰[č‡Ē我äŋŽåžŠ](/zh-tw/self-healing/)įš„功čƒŊ。 +åĸ集įš„å¯Ļ際į‹€æ…‹å°‡å§‹įĩ‚čˆ‡įļ­é‹č€…所期望įš„į‹€æ…‹į›¸įŦĻ。 +į•ļ Kubernetes åĩæ¸Ŧåˆ°čˆ‡æ¸…å–ŽæĒ”æĄˆæčŋ°ä¸įŦĻįš„情æŗæ™‚īŧŒ +Kubernetes 控åˆļ器äžŋ會äŋŽåžŠé€™å€‹å•éĄŒã€‚ +雖į„ļ Kubernetes äŊŋį”¨įš„åŸēį¤Žč¨­æ–Ŋ可čƒŊæœƒä¸æ–ˇåœ°čŽŠåŒ–īŧŒ +äŊ† Kubernetes 會č‡Ēå‹•ä¸æ–ˇåœ°éš¨äš‹æ”ščŽŠīŧŒ +äģĨįĸēäŋčˆ‡æœŸæœ›įš„į‹€æ…‹äŋæŒä¸€č‡´ã€‚ diff --git a/content/zh-tw/monolithic-apps.md b/content/zh-tw/monolithic-apps.md new file mode 100644 index 0000000000..24f36feaf5 --- /dev/null +++ b/content/zh-tw/monolithic-apps.md @@ -0,0 +1,34 @@ +--- +title: å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧ +status: Completed +category: æĻ‚åŋĩ +tags: ["æžļ構", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧæ˜¯ä¸€å€‹å¯éƒ¨įŊ˛įš„į¨‹åŧīŧŒä¸”包åĢ所有功čƒŊ在å…ļ中。 +這通常是開į™ŧ應į”¨į¨‹åŧæ™‚最喎į´”čˇŸæœ€åŽšæ˜“įš„čĩˇéģžã€‚ +į„ļ而īŧŒä¸€æ—Ļ應į”¨į¨‹åŧčŽŠåž—æ›´č¤‡é›œīŧŒå–ŽéĢ”äžŋ可čƒŊčŽŠåž—é›ŖäģĨįļ­č­ˇã€‚ +éš¨č‘—æ›´å¤šé–‹į™ŧäēēå“Ąä¸€čĩˇåœ¨åŒä¸€å€‹į¨‹åŧįĸŧåēĢ中開į™ŧīŧŒ +攚動䚋間å‡ēįžčĄįĒįš„抟會äžŋ會åĸžåŠ īŧŒ +開į™ŧäēēå“Ąäš‹é–“įš„æēé€šéœ€æą‚äšŸæœƒčŽŠå¤šã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +äŊŋį”¨[垎服務](/zh-tw/microservices/)來開į™ŧ應į”¨į¨‹åŧæœƒåĸžåŠ įļ­é‹æˆæœŦīŧŒ +因į‚ē會有更多įš„æąčĨŋ需čĻæ¸ŦčŠĻ、部įŊ˛čˆ‡åŸˇčĄŒã€‚ +åĻ‚æžœčƒŊ在į”ĸ品į”Ÿå‘Ŋé€ąæœŸįš„åˆæœŸå°ąåģēįĢ‹ä¸€å€‹å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧīŧŒ +å°ąčƒŊ把這į¨Žč¤‡é›œåēĻæŽ¨é˛åˆ°įĸē厚į”ĸ品成功䚋垌īŧŒ +æˆ–č¨ąä¸å¤ąį‚ē一個åĨŊä¸ģ意。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +č‹ĨčĻčŽ“ä¸€å€‹č¨­č¨ˆč‰¯åĨŊįš„å–ŽéĢ”åŧæ‡‰į”¨į¨‹åŧįŦĻ合į˛žå¯Ļ原則īŧŒ +å°ąčĻæŠŠé€™å€‹æ‡‰į”¨į¨‹åŧäģĨ最į°Ąå–Žįš„æ–šåŧčˇ‘čĩˇäž†īŧŒ +į•ļ一個喎éĢ”åŧæ‡‰į”¨į¨‹åŧįš„åˇ˛įļ“čĸĢč­‰æ˜Žå…ˇæœ‰å•†æĨ­åƒšå€ŧ䚋垌īŧŒ +äžŋ可äģĨ將å…ļ拆č§Ŗį‚ē垎服務。 +åĻ‚果在一個應į”¨į¨‹åŧč­‰æ˜Žå…ļ僚å€ŧäš‹å‰å°ąäŊŋį”¨åžŽæœå‹™æžļæ§‹äž†é€˛čĄŒé–‹į™ŧīŧŒ +äžŋ可čƒŊ成į‚ē過旊įš„åˇĨį¨‹æŠ•å…Ĩ。 +čŦ一這個應į”¨į¨‹åŧį„Ąæŗ•æäž›åƒšå€ŧīŧŒ +é€™å°‡æœƒčŽŠåž—åž’å‹žį„ĄåŠŸã€‚ diff --git a/content/zh-tw/multitenancy.md b/content/zh-tw/multitenancy.md new file mode 100644 index 0000000000..adf3f689d9 --- /dev/null +++ b/content/zh-tw/multitenancy.md @@ -0,0 +1,31 @@ +--- +title: 多į§Ÿæˆļ +status: Completed +category: åąŦ性 +tags: ["åŸēį¤Žč¨­æ–Ŋ", "åąŦ性", ""] +--- + +## äģ€éēŧ是多į§Ÿæˆļ {#what-it-is} + +多į§Ÿæˆļ是指į‚ē多個į§Ÿæˆļ提䞛服務įš„喎一čģŸéĢ”設æ–Ŋ。 +一個į§Ÿæˆļ是一個äŊŋį”¨č€…、應į”¨į¨‹åŧæˆ–多個在č‡Ēåˇąčŗ‡æ–™é›†ä¸ŠäŊŋį”¨čģŸéĢ”運äŊœįš„äŊŋį”¨č€…/應į”¨į¨‹åŧã€‚ +這äē›į§Ÿæˆļä¸Ļä¸å…ąäēĢčŗ‡æ–™īŧˆé™¤éžæ“æœ‰č€…有明įĸē指į¤ēīŧ‰īŧŒį”šč‡ŗ可čƒŊ不įŸĨ道åŊŧ此。 + +į§Ÿæˆļ可äģĨ小č‡ŗä¸€å€‹å…ˇæœ‰å–Žä¸€į™ģå…Ĩ ID įš„į¨įĢ‹į”¨æˆļīŧˆäž‹åĻ‚個äēēį”Ÿį”ĸ力čģŸéĢ”īŧ‰īŧŒæˆ–像整個å…Ŧ司一æ¨Ŗ大īŧŒæ“æœ‰æ•¸åƒå€‹į™ģå…Ĩ IDīŧŒæ¯å€‹į™ģå…Ĩ ID éƒŊ有č‡Ēåˇąįš„æŦŠé™īŧŒäŊ†äģĨ多į¨Žæ–šåŧį›¸äē’é—œč¯ã€‚ +多į§ŸæˆļčģŸéĢ”įš„į¯„䞋包æ‹Ŧ Google Mail、Google Docs、Microsoft Office 365、Salesforce CRM 和 DropboxīŧŒäģĨåŠč¨ąå¤ščĸĢæ­¸éĄžį‚ē厌整多į§Ÿæˆļ或部分多į§Ÿæˆļįš„å…ļäģ–čģŸéĢ”。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åĻ‚æžœæ˛’æœ‰å¤šį§ŸæˆļīŧŒå°ąéœ€čĻæ¯å€‹į§ŸæˆļéƒŊåŽģ厉čŖå°ˆį”¨įš„čģŸéĢ”設æ–ŊīŧŒé€™æœƒåĸžåŠ éœ€čĻé‹į”¨įš„čŗ‡æēå’Œįļ­č­ˇč˛ æ“”īŧŒé€˛č€Œæå‡äē†čģŸéĢ”成æœŦ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +多į§ŸæˆļčģŸéĢ”į‚ē每個į§Ÿæˆļ提䞛一個隔é›ĸįš„į’°åĸƒīŧˆåˇĨäŊœčŗ‡æ–™ã€č¨­åŽšã€æ†‘č­‰æ¸…å–Žį­‰īŧ‰īŧŒåŒæ™‚į‚ē多個į§Ÿæˆļ提䞛服務。 +åžžį§Ÿæˆļįš„角åēĻ來įœ‹īŧŒæ¯å€‹į§ŸæˆļéƒŊ有å…ļ專į”¨įš„čģŸéĢ”設æ–ŊīŧŒå„˜įŽĄå¯Ļ際上厃們éƒŊå…ąäēĢ同一個。 +這是透過在äŧēæœå™¨ä¸Šé‹čĄŒčģŸéĢ”ä¸Ļå…č¨ąį§ŸæˆļäģĨäģ‹éĸ和/或 [API](/zh-tw/application-programming-interface/) 透過įļ˛čˇ¯é€ŖæŽĨåˆ°čŠ˛čģŸéĢ”䞆å¯ĻäŊœįš„īŧˆåĻčĢ‹åƒé–ą[ä¸ģåžžåŧæžļ構](/zh-tw/client-server-architecture/)īŧ‰ã€‚ +äŊŋį”¨å¤šį§ŸæˆļčģŸéĢ”īŧŒį§ŸæˆļčƒŊå¤ å…ąäēĢä¸€å€‹č¨­æ–Ŋįš„čŗ‡æēīŧŒč€Œä¸æœƒį›¸äē’åŊąéŸŋ或僅äģĨ預先厚įžŠå’Œå—控įš„æ–šåŧæœ‰æ‰€äē¤äē’äŊœį”¨ã€‚ +čģŸéĢ”䞛應商所į¯€įœįš„čŗ‡æēå¯äģĨčŊ‰į§ģįĩĻį§ŸæˆļīŧŒé€˛č€ŒéĄ¯č‘—地降äŊŽį”¨æˆļįš„čģŸéĢ”成æœŦīŧˆåƒæ˜¯åŸēæ–ŧįļ˛é įš„é›ģ子éƒĩäģļ或文äģļįˇ¨čŧ¯å™¨īŧ‰ã€‚ + +## į›¸é—œčĄ“čĒž {#related-terms} + +多į§Ÿæˆļ和 SaaS ä¸Ļ非同įžŠčŠžīŧŒåŗäžŋ SaaS 多į§Ÿæˆļ垈常čĻ‹īŧŒį”šč‡ŗ將多į§ŸæˆļčĻ–į‚ēå…ļæ ¸åŋƒå„Ēå‹ĸ䚋一。 diff --git a/content/zh-tw/nodes.md b/content/zh-tw/nodes.md new file mode 100644 index 0000000000..99289cf529 --- /dev/null +++ b/content/zh-tw/nodes.md @@ -0,0 +1,36 @@ +--- +title: į¯€éģž +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +į¯€éģžæ˜¯ä¸€å°æœƒčˆ‡å…ļäģ–č¨ˆįŽ—抟īŧˆæˆ–į¨ąį¯€éģžīŧ‰ä¸€čĩˇé‹äŊœäģĨåŽŒæˆå…ąåŒäģģ務įš„č¨ˆįŽ—抟。 +舉例來čĒĒīŧŒ +äŊ įš„į­†č¨˜åž‹é›ģč…Ļã€æ•¸æ“šæŠŸå’Œå°čĄ¨æŠŸéƒŊé€ŖæŽĨ在äŊ įš„į„Ąįˇšįļ˛čˇ¯ä¸Šé€˛čĄŒé€šč¨Šå’Œå”äŊœīŧŒ +å…ļ中每個čŖįŊŽéƒŊéƒŊäģŖčĄ¨ä¸€å€‹į¯€éģžã€‚ +在[雲įĢ¯é‹įŽ—](/zh-tw/cloud-computing/)中īŧŒ +一個į¯€éģžå¯äģĨ是一台å¯ĻéĢ”č¨ˆįŽ—抟īŧŒ +æˆ–æ˜¯ä¸€å°č™›æ“Ŧ抟器īŧˆ[VM](/zh-tw/virtual-machine/)īŧ‰īŧŒ +į”šč‡ŗ可äģĨ是一個[厚器](/zh-tw/container/)。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +雖į„ļ一個應į”¨į¨‹åŧå¯äģĨīŧˆč€Œä¸”垈多éƒŊ這éēŧ做īŧ‰åœ¨ä¸€å°å–Žį¨įš„č¨ˆįŽ—æŠŸä¸Šé‹čĄŒīŧŒ +äŊ†é€™æ¨Ŗ會存在一äē›éĸ¨éšĒ。 +ä¸ģčĻæ˜¯å› į‚ēåē•åą¤įŗģįĩąįš„æ•…éšœæœƒåš˛æ“žæ‡‰į”¨į¨‹åŧįš„é‹čĄŒã€‚ +į‚ēäē†č§Ŗæąēé€™å€‹å•éĄŒīŧŒ +開į™ŧäēēå“Ąå€‘é–‹å§‹åģēįĢ‹[分æ•Ŗåŧæ‡‰į”¨į¨‹åŧ](/zh-tw/distributed-apps/)īŧŒ +čŽ“æ¯å€‹čĄŒį¨‹éƒŊ在č‡Ēåˇąįš„į¯€éģžä¸Šé‹čĄŒã€‚ +因此īŧŒåŸˇčĄŒé€™äē›æ‡‰į”¨į¨‹åŧæˆ–æ˜¯čĄŒį¨‹įš„į¯€éģžå€‘äžŋ會åŊĸ成一個į¯€éģž[åĸ集](/zh-tw/cluster/)īŧŒ +一čĩˇåˆäŊœåŽŒæˆå…ąåŒįš„į›Žæ¨™ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +一個į¯€éģžæäž›äē†ä¸€å€‹å¯æŒ‡æ´žįĩĻ一個åĸ集įš„į¨įĢ‹é‹įŽ—å–Žå…ƒīŧˆč¨˜æ†ļéĢ”、CPU、įļ˛čˇ¯īŧ‰ã€‚ +在[雲įĢ¯åŽŸį”Ÿ](/zh-tw/cloud-native-tech/)åšŗ台或應į”¨į¨‹åŧä¸­īŧŒ +一個į¯€éģžå°ąäģŖčĄ¨ä¸€å€‹å¯äģĨåŸˇčĄŒåˇĨäŊœįš„å–ŽäŊã€‚ +在į†æƒŗ情æŗä¸‹īŧŒå€‹åˆĨįš„į¯€éģžæ˜¯ä¸å¯å€åˆ†įš„īŧŒ +äšŸå°ąæ˜¯čĒĒīŧŒæˆ‘們į„Ąæŗ•å€åˆ†æŸå€‹éĄžåž‹įš„äģģäŊ•ä¸€å€‹į¯€éģžčˆ‡åŒä¸€éĄžåž‹įš„å…ļäģ–į¯€éģžã€‚ diff --git a/content/zh-tw/observability.md b/content/zh-tw/observability.md new file mode 100644 index 0000000000..29aac9e9c4 --- /dev/null +++ b/content/zh-tw/observability.md @@ -0,0 +1,17 @@ +--- +title: å¯č§€æ¸Ŧ性 +status: Completed +category: æĻ‚åŋĩ +tags: ["åąŦ性", "", ""] +--- + +å¯č§€å¯Ÿæ€§æ˜¯ä¸€å€‹įŗģįĩąåąŦ性īŧŒå…ļ厚įžŠäē†įŗģįĩąčƒŊ夠į”ĸį”Ÿå¯åŸˇčĄŒčĻ‹č§Ŗįš„į¨‹åēĻ。 +åŽƒå…č¨ąäŊŋį”¨č€…垞這äē›å¤–部čŧ¸å‡ēåŽģį†č§Ŗįŗģįĩąį‹€æ…‹ä¸ĻæŽĄå–čĄŒå‹•äž†äŋŽæ­Ŗ。 + +計įŽ—抟įŗģįĩąé€šéŽč§€å¯ŸäŊŽéšŽäŋĄč™Ÿīŧˆäž‹åĻ‚ CPU æ™‚é–“ã€č¨˜æ†ļéĢ”、įŖįĸŸįŠē間īŧ‰äģĨ及更éĢ˜éšŽå’ŒæĨ­å‹™äŋĄč™ŸīŧˆåŒ…æ‹Ŧ API 回應時間、錯čĒ¤ã€æ¯į§’äē¤æ˜“æŦĄæ•¸į­‰īŧ‰é€˛čĄŒčĄĄé‡ã€‚ +這äē›å¯č§€å¯Ÿįš„įŗģįĩąé€šéŽå°ˆæĨ­åˇĨå…ˇīŧŒåŗ所čŦ‚įš„å¯č§€å¯Ÿæ€§åˇĨå…ˇīŧŒé€˛čĄŒ**č§€å¯Ÿ**īŧˆæˆ–į›Ŗ控īŧ‰ã€‚ +這äē›åˇĨå…ˇįš„åˆ—čĄ¨å¯äģĨ在 [Cloud Native Landscape įš„å¯č§€å¯Ÿæ€§éƒ¨åˆ†](https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category) 中æŸĨįœ‹ã€‚ + +å¯č§€å¯Ÿįš„įŗģįĩąå‘操äŊœäēēå“Ąæäž›æœ‰æ„įžŠä¸”å¯åŸˇčĄŒįš„čŗ‡æ–™īŧŒäŊŋäģ–們čƒŊ夠達到更有刊įš„įĩæžœ (更åŋĢįš„æ„å¤–æ‡‰čŽŠīŧŒé–‹į™ŧ者į”Ÿį”ĸ力提升)ä¸Ļ減少įšį‘ŖäŊœæĨ­čˆ‡åœæŠŸæ™‚間。 + +因此īŧŒįŗģįĩąįš„å¯č§€å¯Ÿæ€§į¨‹åēĻå°‡éĄ¯č‘—åŊąéŸŋå…ļįļ­é‹å’Œé–‹į™ŧ成æœŦ。 diff --git a/content/zh-tw/pod.md b/content/zh-tw/pod.md new file mode 100644 index 0000000000..7f1da8f09c --- /dev/null +++ b/content/zh-tw/pod.md @@ -0,0 +1,33 @@ +--- +title: Pod +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "åŸēæœŦ原į†", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +Pod 是 [Kubernetes](/zh-tw/kubernetes/) į’°åĸƒä¸­æœ€åŸēæœŦįš„可部įŊ˛å–ŽäŊã€‚ +厃äģŖ襨部įŊ˛å’ŒįŽĄį†åŽšå™¨åŒ–應į”¨į¨‹åŧįš„åŋ…čĻįĩ„äģļ。 +每個 Pod 包åĢ一個應į”¨į¨‹åŧå¯Ļ例īŧŒä¸Ļ且可äģĨį”ąä¸€å€‹æˆ–是多個[厚器](/zh-tw/container/) 所įĩ„成。 +Kubernetes 將 Pod čĻ–į‚ē大čĻæ¨Ąéƒ¨įŊ˛įš„ä¸€éƒ¨åˆ†é€˛čĄŒįŽĄį†īŧŒä¸Ļä¸”å¯æ šæ“šéœ€æą‚[垂į›´](/zh-tw/vertical-scaling/)或是[æ°´åšŗ](/zh-tw/horizontal-scaling/)åœ°æ“´åą• Pod įš„čĻæ¨Ąã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +雖į„ļ厚器通常äŊœį‚ēį¨įĢ‹įš„å–ŽäŊé‹čĄŒäģĨ及控åˆļį‰šåŽšįš„åˇĨäŊœč˛ čŧ‰īŧŒ +äŊ†æ˜¯æŸäē›æƒ…æŗä¸‹īŧŒåŽšå™¨é–“需čĻäģĨįˇŠå¯†č€Ļ合įš„æ–šåŧé€˛čĄŒäē’å‹•čˆ‡čĸĢ控åˆļ。 + +åĻ‚果將這äē›å¯†åˆ‡į›¸é—œįš„厚器喎į¨įŽĄį†īŧŒå‰‡æœƒå°Žč‡´å†—äŊ™įš„įŽĄį†äģģ務å‡ēįžã€‚ +舉例來čĒĒīŧŒæ“äŊœč€…åŋ…須反čĻ†åœ°įĸēäŋé€™äē›åŽšå™¨åŊŧæ­¤įš„部įŊ˛į‹€æ…‹äģĨįĸēäŋäģ–們äŋæŒåœ¨ä¸€čĩˇã€‚ +此外這äē›å¯†åˆ‡į›¸é—œįš„厚器å…ļį”Ÿå‘Ŋé€ąæœŸåŋ…é ˆä¸€č‡´åŒæ­Ĩįš„čĸĢ處į†īŧŒäŊ†æ˜¯åģåĒčƒŊ各åˆĨå–Žį¨įŽĄį†ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +Pod 將įˇŠå¯†é—œäŋ‚įš„厚器們打包成一個喎一įš„å–ŽäŊīŧŒæ­¤čˆ‰å¤§åš…åēĻįš„į°ĄåŒ–äē†åŽšå™¨æ“äŊœã€‚ +č­ŦåĻ‚īŧŒčŧ”劊į”¨åŽšå™¨é€šå¸¸éƒŊ會äŧ´éš¨ä¸ģčĻåŽšå™¨ä¸€čĩˇäŊŋį”¨åˇ˛åŠ å…ĨéĄå¤–åŠŸčƒŊæˆ–æ˜¯č¨­åŽšå…¨åŸŸč¨­åŽšã€‚ +į¯„䞋包åĢ將åŸēæœŦč¨­åŽšįĩĻæŗ¨å…Ĩ或是åĨ—į”¨åˆ°ä¸ģčĻåŽšå™¨įš„厚器īŧŒ +äģĨ sidecar 來處į†įļ˛čˇ¯æĩé‡čˆ‡čˇ¯į”ąį›¸é—œįš„æ¨Ąåŧ(參čĻ‹ [服務įļ˛æ ŧ](/zh-tw/service-mesh/))īŧŒ +或是åšĢåŋ™æ”ļ集å…ļäģ–厚器æ—ĨčĒŒįš„厚器。 + +記æ†ļéĢ”å’Œ CPU 配įŊŽå¯äģĨ在 Pod åą¤į´šåŽģ厚įžŠīŧŒäŊŋ垗厚器們可äģĨåŊˆæ€§įš„æ–šåŧåŽģå…ąäēĢčŗ‡æēæˆ–是針對每個厚器åŽģč¨­åŽšã€‚ + diff --git a/content/zh-tw/reliability.md b/content/zh-tw/reliability.md new file mode 100644 index 0000000000..ed7eba1a7a --- /dev/null +++ b/content/zh-tw/reliability.md @@ -0,0 +1,11 @@ +--- +title: 可靠性 +status: Completed +category: åąŦ性 +tags: ["åŸēæœŦ原į†", "åąŦ性", ""] +--- + +åžžé›˛įĢ¯åŽŸį”Ÿįš„角åēĻ來įœ‹īŧŒå¯é æ€§æ˜¯æŒ‡įŗģįĩąå°æ•…éšœįš„反應čƒŊ力。 +åĻ‚æžœæˆ‘å€‘æœ‰ä¸€å€‹å…ˇå‚™åœ¨åŸēį¤Žč¨­æ–Ŋį™ŧį”ŸčŽŠåŒ–且喎一元äģļį™ŧį”Ÿæ•…障時äģå¯įšŧįēŒé‹äŊœįš„[分æ•Ŗåŧįŗģįĩą](/zh-tw/distributed-systems/)īŧŒé‚ŖéēŧåŽƒå°ąæ˜¯å¯é įš„。 +åĻ一斚éĸīŧŒåĻ‚果厃垈厚易å‡ēįžæ•…éšœīŧŒä¸Ļ且需čĻæ“äŊœäēēå“Ąæ‰‹å‹•åš˛æļ‰æ‰čƒŊäŊŋå…ļįšŧįēŒé‹čĄŒīŧŒé‚Ŗ厃是不可靠įš„。 +[雲įĢ¯åŽŸį”Ÿæ‡‰į”¨į¨‹åŧ](/zh-tw/cloud-native-apps/)įš„į›Žæ¨™åŗ是åģēįĢ‹æœŦčŗĒ上可靠įš„įŗģįĩąã€‚ diff --git a/content/zh-tw/scalability.md b/content/zh-tw/scalability.md new file mode 100644 index 0000000000..d44a251b9b --- /dev/null +++ b/content/zh-tw/scalability.md @@ -0,0 +1,24 @@ +--- +title: å¯æ“´åą•æ€§ +status: Completed +category: åąŦ性 +tags: ["åŸēæœŦ原į†", "åąŦ性", ""] +--- + +å¯æ“´åą•æ€§æŒ‡įš„是一個įŗģįĩąčƒŊå¤ æ“´å¤§æˆé•ˇįš„čƒŊ力īŧŒ +äšŸå°ąæ˜¯åĸžåŠ įŗģįĩąåŸˇčĄŒå…ļ預厚功čƒŊįš„čƒŊ力。 +舉例來čĒĒīŧŒ +[Kubernetes](/zh-tw/kubernetes/) [åĸ集]((/zh-tw/cluster/))透過åĸžæ¸›[厚器化](/zh-tw/containerization/)應į”¨į¨‹åŧįš„æ•¸é‡äž†æ“´åą•īŧŒ +äŊ†é€™į¨Žå¯æ“´åą•æ€§å–æąēæ–ŧåšžé …å› į´ ã€‚ +厃擁有多少個[į¯€éģž](/zh-tw/nodes/)īŧŸ +每個į¯€éģžå¯äģĨ處į†å¤šå°‘個[厚器](/zh-tw/container/)īŧŸ +äģĨ及控åˆļåšŗéĸčƒŊå¤ æ”¯æ´å¤šå°‘č¨˜éŒ„å’Œæ“äŊœīŧŸ + +å¯æ“´åą•æ€§įš„įŗģįĩąäŊŋåĸžåŠ åŽšé‡čŽŠåž—厚易。 +ä¸ģčĻå€åˆ†į‚ēå…Šį¨Žæ“´åą•æ–šæŗ•ã€‚ +å…ļ中之一īŧŒ +[æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling/)æˇģ加更多į¯€éģžäģĨ處į†åĸžåŠ įš„負čŧ‰ã€‚ +į›¸æ¯”䚋下īŧŒ +在[垂į›´æ“´åą•](/zh-tw/vertical-scaling/)中īŧŒ +喎個į¯€éģžæœ‰æ›´åŧˇå¤§įš„功čƒŊäģĨåŸˇčĄŒæ›´å¤šįš„äē‹å‹™īŧˆäž‹åĻ‚īŧŒé€éŽį‚ē喎個抟器æˇģåŠ æ›´å¤šč¨˜æ†ļéĢ”或 CPUīŧ‰ã€‚ +å…ˇå‚™å¯æ“´åą•æ€§įš„įŗģįĩąčƒŊ夠čŧ•éŦ†åœ°é€˛čĄŒčŽŠæ›´īŧŒäģĨæģŋčļŗäŊŋį”¨č€…įš„éœ€æą‚ã€‚ \ No newline at end of file diff --git a/content/zh-tw/service-mesh.md b/content/zh-tw/service-mesh.md new file mode 100644 index 0000000000..a145040799 --- /dev/null +++ b/content/zh-tw/service-mesh.md @@ -0,0 +1,24 @@ +--- +title: 服務įļ˛æ ŧ +status: Completed +category: æŠ€čĄ“ +tags: ["įļ˛čˇ¯", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +在[垎服務](/zh-tw/microservices/)įš„世į•ŒčŖĄīŧŒæ‡‰į”¨į¨‹åŧčĸĢ拆分成多個čŧƒå°įš„[服務](/zh-tw/service/)īŧŒč€Œé€™äē›æœå‹™æœƒé€éŽįļ˛čˇ¯é€˛čĄŒé€šč¨Šã€‚ +å°ąåƒæ‚¨įš„ Wi-Fi įļ˛čˇ¯ä¸€æ¨ŖīŧŒč¨ˆįŽ—抟įš„įļ˛čˇ¯æœŦčŗĒ上是不可靠įš„、易čĸĢæ”ģ擊įš„īŧŒä¸”įļ“常速åēĻčŧƒæ…ĸ。 +服務įļ˛æ ŧ透過įŽĄį†æœå‹™é–“įš„æĩé‡īŧˆåŗ通訊īŧ‰īŧŒä¸Ļ在所有服務中įĩąä¸€åŠ å…Ĩ[可靠性](/zh-tw/reliability/)、[å¯č§€å¯Ÿæ€§](/zh-tw/observability/)和厉全性功čƒŊīŧŒäž†č§Ŗæąē這一įŗģ列新įš„挑戰。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į•ļčŊ‰į§ģ到垎服務įš„æžļ構垌īŧŒåˇĨį¨‹å¸Ģįžåœ¨éƒŊåŋ…é ˆč™•į†æ•¸į™žå€‹īŧŒį”šč‡ŗ數千個需čĻé€šč¨Šįš„服務。 +這意å‘ŗč‘—å°‡æœ‰å¤§é‡įš„æĩé‡æœƒåœ¨įļ˛čˇ¯ä¸Šäž†å›žå‚ŗčŧ¸ã€‚ +除此䚋外īŧŒå–Žä¸€įš„應į”¨į¨‹åŧæœƒéœ€čĻå°é€šč¨Šé€˛čĄŒåŠ å¯†äģĨ支援į›ŖįŽĄčĻæą‚、į‚ēį‡Ÿé‹åœ˜éšŠæäž›é€šį”¨æŒ‡æ¨™ã€æˆ–對æ–ŧæĩé‡æå‡ēčŠŗį´°įš„čĻ‹č§ŖäģĨ協劊č¨ēæ–ˇå•éĄŒã€‚ +åĻ‚果這äē›åŠŸčƒŊčĸĢåģēįĢ‹åœ¨å–Žä¸€įš„應į”¨į¨‹åŧä¸­īŧŒé‚Ŗéēŧ每一個功čƒŊéƒŊ會į”ĸį”Ÿåœ˜éšŠé–“įš„æ‘Šæ“ĻīŧŒæ¸›įˇŠæ–°åŠŸčƒŊ開į™ŧįš„速åēĻ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +服務įļ˛æ ŧ在不需čĻæ”ščŽŠį¨‹åŧįĸŧįš„情æŗä¸‹īŧŒį‚ē所有服務įĩąä¸€åœ°åĸžåŠ äē†å¯é æ€§ã€å¯č§€å¯Ÿæ€§å’ŒåŽ‰å…¨æ€§åŠŸčƒŊ。 +在服務įļ˛æ ŧå‡ēįžäš‹å‰īŧŒé€™äē›åŠŸčƒŊåŋ…é ˆčĸĢåĩŒå…Ĩ到每一個服務中īŧŒæˆį‚ē錯čĒ¤å’ŒæŠ€čĄ“å‚ĩįš„æŊ›åœ¨äž†æēã€‚ diff --git a/content/zh-tw/shift-left.md b/content/zh-tw/shift-left.md new file mode 100644 index 0000000000..2cbea0a865 --- /dev/null +++ b/content/zh-tw/shift-left.md @@ -0,0 +1,39 @@ +--- +title: 向åˇĻį§ģ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +åĻ‚果我們將將čģŸéĢ”é–‹į™ŧé€ąæœŸæƒŗ像成一æĸåžžåˇĻ到åŗ䞝åēåŸˇčĄŒįš„įˇšīŧŒ +「向åˇĻį§ģ」中įš„「åˇĻ」指įš„äžŋæ˜¯é€ąæœŸä¸­čŧƒæ—Šįš„階æŽĩ。 +向åˇĻį§ģ是在čģŸéĢ”é–‹į™ŧį”Ÿå‘Ŋé€ąæœŸä¸­įš„旊期階æŽĩå°ąé€˛čĄŒæ¸ŦčŠĻ、厉全性或開į™ŧå¯Ļ踐į­‰īŧŒ +而éŋ免į­‰åˆ°é€ąæœŸįš„æœĢæœŸæ‰é€˛čĄŒįš„一į¨Žå¯Ļč¸ã€‚ + +儘įŽĄæœ€åˆæ˜¯į”¨äž†æŒ‡į¨ąæ—ŠæœŸæ¸ŦčŠĻįš„過į¨‹īŧŒ +äŊ†įžåœ¨å‘åˇĻį§ģ䚟可äģĨ應į”¨æ–ŧčģŸéĢ”é–‹į™ŧ和 [DevOps](/zh-tw/devops/) įš„å…ļäģ–æ–šéĸīŧŒåĻ‚厉全性和部įŊ˛ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +åĻ‚果在開į™ŧé€ąæœŸåžŒæœŸæˆ–éƒ¨įŊ˛åžŒæ‰į™ŧįžåŽ‰å…¨å•éĄŒã€éŒ¯čĒ¤å’ŒčģŸéĢ”įŧē陷īŧŒ +äŋŽåžŠåŽƒå€‘可čƒŊæœƒčŽŠåž—æ›´åŠ å›°é›Ŗä¸”æ˜‚č˛´īŧŒ +å°¤å…ļ是åĻ‚æžœčŠ˛čģŸéĢ”åˇ˛įļ“部įŊ˛åˆ°æ­Ŗåŧį’°åĸƒä¸­ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +透過在čģŸéĢ”é–‹į™ŧä¸­æŽĄį”¨å‘åˇĻį§ģįš„思įļ­īŧŒ +團隊可äģĨ在整個開į™ŧį”Ÿå‘Ŋé€ąæœŸä¸­é€˛čĄŒæ¸ŦčŠĻ和加åŧˇåŽ‰å…¨æ€§ã€‚ +į”ąæ–ŧæ¸ŦčŠĻ和厉全性įš„č˛Ŧäģģį”ąé–‹į™ŧåœ˜éšŠå…ąåŒæ‰ŋ擔īŧŒ +åžžčģŸéĢ”åˇĨį¨‹å¸Ģ到品čŗĒäŋč­‰å†åˆ°įļ­é‹īŧŒ +每個äēēéƒŊ在įĸēäŋæ‡‰į”¨į¨‹åŧįš„įŠŠåŽšæ€§å’ŒåŽ‰å…¨æ€§ã€‚ + +此外īŧŒå‘åˇĻį§ģ開啟äē†æŒįēŒæ”šé€˛įš„可čƒŊ性īŧŒä¸Ļä¸”æŽĄį”¨äē†[æ•æˇåŧ](/zh-tw/agile-software-development/)č€Œä¸æ˜¯į€‘布åŧįš„é–‹į™ŧæ–šæŗ•ã€‚ +團隊可äģĨé€˛čĄŒå°čĻæ¨Ąįš„čŋ­äģŖæ”šé€˛īŧŒä¸Ļå„˜æ—Šč­˜åˆĨå•éĄŒã€‚ +這į¨Žæ–šæŗ•čŽ“åˇĨį¨‹å¸Ģ可äģĨææ—Šåœ¨č¨­č¨ˆå’Œæžļ構階æŽĩīŧŒ +å°ąæŽĄį”¨åŽ‰å…¨å¯é įš„é–‹į™ŧå¯Ļč¸ã€‚ +在整個開į™ŧé€ąæœŸä¸­é€˛čĄŒæ¸ŦčŠĻ可äģĨ減少čģŸéĢ”į™ŧ布前所需įš„æ¸ŦčŠĻ時間。 + +č¨ąå¤ščģŸéĢ”åˇĨå…ˇå’Œ SaaS č§Ŗæąēæ–šæĄˆéƒŊ有劊æ–ŧåœ˜éšŠæœč‘—å‘åˇĻį§ģå‰é€˛ã€‚ +äŊ†å‘åˇĻį§ģ䚟可äģĨé€éŽæ”šé€˛åœ˜éšŠå…§éƒ¨įš„æĩį¨‹å’Œæ–‡åŒ–čŽŠéŠäž†å¯Ļæ–Ŋ。 diff --git a/content/zh-tw/site-reliability-engineering.md b/content/zh-tw/site-reliability-engineering.md new file mode 100644 index 0000000000..eb3ebedb05 --- /dev/null +++ b/content/zh-tw/site-reliability-engineering.md @@ -0,0 +1,29 @@ +--- +title: įļ˛įĢ™å¯é æ€§åˇĨį¨‹ +status: Completed +category: æĻ‚åŋĩ +tags: ["æ–šæŗ•čĢ–", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +įļ˛įĢ™å¯é æ€§åˇĨį¨‹(SRE)是一門įĩåˆäē†įļ­é‹å’ŒčģŸéĢ”åˇĨį¨‹įš„å°ˆæĨ­ã€‚ +厃ä¸ģčĻæ‡‰į”¨æ–ŧåŸēį¤Žč¨­æ–Ŋ和įļ­é‹å•éĄŒã€‚ +這意å‘ŗ著īŧŒįļ˛įĢ™å¯é æ€§åˇĨį¨‹å¸Ģ不是åģē構į”ĸ品功čƒŊīŧŒč€Œæ˜¯åģē構įŗģįĩąäž†é‹čĄŒæ‡‰į”¨į¨‹åŧã€‚ +雖į„ļ SRE 和 [DevOps](/zh-tw/devops/) 有į›¸äŧŧ之處īŧŒäŊ†æ˜¯ DevOps ä¸ģčĻé—œæŗ¨å°‡į¨‹åŧįĸŧ部įŊ˛åˆ°æ­Ŗåŧį’°åĸƒīŧŒ +而 SRE 則įĸēäŋæ­Ŗåŧį’°åĸƒä¸­é‹čĄŒįš„į¨‹åŧįĸŧæ­Ŗįĸē運äŊœã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +įĸēäŋæ‡‰į”¨į¨‹åŧé‹čĄŒå…ˇå‚™[可靠性](/zh-tw/reliability/)īŧŒéœ€čĻå…ˇå‚™å¤šé …čƒŊ力īŧŒ +垞效čƒŊį›Ŗ控、č­Ļå ąã€é™¤éŒ¯åˆ°æ•…éšœæŽ’é™¤éƒŊ是åŋ…čĻįš„。 +åĻ‚æžœįŧē少這äē›čƒŊ力īŧŒįŗģįĩąæ“äŊœå“ĄåĒčƒŊå°å•éĄŒåšå‡ē反應īŧŒåģį„Ąæŗ•ä¸ģ動åŠĒ力éŋ免厃們īŧŒ +č€Œé€ æˆåœæŠŸåƒ…æ˜¯æ™‚é–“å•éĄŒã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +įļ˛įĢ™å¯é æ€§åˇĨį¨‹é€éŽæŒįēŒæ”šé€˛åē•åą¤įŗģįĩąīŧŒ +äģĨ最大限åēĻ地降äŊŽčģŸéĢ”é–‹į™ŧ過į¨‹įš„成æœŦ、時間和åˇĨäŊœé‡ã€‚ +芲įŗģįĩąæŒįēŒæ¸Ŧ量和į›Ŗ控åŸēį¤Žč¨­æ–Ŋ和應į”¨į¨‹åŧįš„å…ƒäģļ。 +į•ļå‡ēįžå•éĄŒæ™‚īŧŒįŗģįĩąæœƒå‘įļ˛įĢ™å¯é æ€§åˇĨį¨‹å¸Ģ指į¤ēäŊ•æ™‚、äŊ•č™•äģĨ及åĻ‚äŊ•äŋŽåžŠåŽƒã€‚ +這į¨Žæ–šæŗ•é€šéŽč‡Ē動化操äŊœįš„äģģ務īŧŒæœ‰åŠŠæ–ŧå‰ĩåģēéĢ˜åēĻįš„[æ“´åą•æ€§](/zh-tw/scalability/)和可靠性įš„čģŸéĢ”įŗģįĩąã€‚ diff --git a/content/zh-tw/style-guide/_index.md b/content/zh-tw/style-guide/_index.md new file mode 100644 index 0000000000..2e50fec4f6 --- /dev/null +++ b/content/zh-tw/style-guide/_index.md @@ -0,0 +1,183 @@ +--- +title: éĸ¨æ ŧ指南 +toc_hide: true +status: Completed +menu: + main: + weight: 10 +--- + +äģĨ下įš„éĸ¨æ ŧ指南旨在åšĢ劊äŊ äē†č§Ŗ雲įĢ¯åŽŸį”Ÿ Glossary įš„厚įžŠįĩæ§‹īŧŒä¸Ļ在整個過į¨‹ä¸­äŋæŒä¸€č‡´įš„éĸ¨æ ŧ。 + +雲įĢ¯åŽŸį”ŸčŠžåŊ™éĩåžĒäŊæ–ŧ CNCF čŗ‡æēåēĢ中įš„[預設éĸ¨æ ŧ指南](https://github.com/cncf/foundation/blob/master/style-guide.md)。 +此外īŧŒåŽƒé‚„éĩåžĒäģĨ下čĻå‰‡īŧš + +1. äŊŋį”¨į°Ąå–Žã€æ˜“懂įš„čĒžč¨€īŧŒéŋå…æŠ€čĄ“čĄ“čĒžå’ŒæĩčĄŒčĒž +2. [éŋ免äŊŋį”¨äŋščĒž](https://en.wikipedia.org/wiki/Colloquialism) +3. [äŊŋį”¨å­—éĸå’Œå…ˇéĢ”įš„čĒžč¨€](https://guidetogrammar.org/grammar/composition/abstract.htm) +4. [įœį•Ĩį¸Žį•ĨčĒž](https://en.wikipedia.org/wiki/Contraction_(grammar)) +5. [少į”¨čĸĢ動čĒžæ…‹](https://www.ef.com/ca/english-resources/english-grammar/passive-voice/) +6. [åŠ›æą‚äģĨįŠæĨĩįš„åŊĸåŧčĄ¨čŋ°](https://examples.yourdictionary.com/positive-sentence-examples.html) +7. [åŧ•č™Ÿå¤–ä¸åŠ æ„Ÿæ­Žč™Ÿ](https://www.grammarly.com/blog/exclamation-mark/) +8. 不čĻčĒ‡å¤§å…ļ詞 +9. éŋå…é‡č¤‡ +10. čĻį°Ąæ˜Žæ‰ŧčĻ + +## 受įœž + +æœŦ Glossary æ˜¯é‡å°æŠ€čĄ“*和*éžæŠ€čĄ“äēēå“Ąįˇ¨å¯Ģįš„。 +čĢ‹äŊŋį”¨į°Ąå–Žįš„襓čĒžäž†č§Ŗ釋厚įžŠä¸Ļ不čĻå‡åŽšæŠ€čĄ“įŸĨč­˜ã€‚æœ‰é—œåŽšįžŠįš„更多į´°į¯€čĢ‹åƒé–ąä¸‹éĸįš„[厚įžŠ](#definition)部分。 + + +## æœ€å°å¯čĄŒåŽšįžŠ + +我們įš„į›Žæ¨™æ˜¯čŽ“äģģäŊ•äēēéƒŊčƒŊ夠čŧ•éŦ†į†č§Ŗ雲įĢ¯åŽŸį”ŸčĄ“čĒžã€‚ +因此īŧŒæˆ‘們專æŗ¨æ–ŧį°ĄæŊ”明įž­ã€‚ +čĢ‹äŊŋį”¨æ¸…æ™°į°Ąå–Žįš„čĒžč¨€īŧŒä¸Ļ提䞛äģģäŊ•äŊŋį”¨æŠ€čĄ“įš„äēēéƒŊ可äģĨį†č§Ŗįš„į¤ē例īŧŒåŒæ™‚提䞛一個*æœ€å°å¯čĄŒåŽšįžŠ*īŧŒč‡ŗå°‘åžžæŠ€čĄ“č§’åēĻ上來čĒĒ。 +我們不希望įœį•Ĩ上下文和į¤ē例 — į•ĸįĢŸīŧŒé€™äē›æąčĨŋ可äģĨåšĢåŠŠčŽ€č€…į†č§ŖæĻ‚åŋĩ — äŊ†åĻ‚æžœæŠ€čĄ“į´°į¯€ä¸éœ€čĻį†č§Ŗ厃īŧŒæˆ‘å€‘å°ąæœƒčˇŗ過厃。 +į›Žæ¨™ä¸æ˜¯čŽ“äē‹æƒ…čŽŠåž—éŽæ–ŧč¤‡é›œã€‚ä¸€æ—Ļ讀者äē†č§Ŗäē†åŸēæœŦæĻ‚åŋĩīŧŒå…ļäģ–čŗ‡æēå°‡æœ‰åŠŠæ–ŧäģ–å€‘é€˛ä¸€æ­Ĩæˇąå…Ĩ挖掘。 +這部分čļ…å‡ēäē†æœŦ Glossary įš„į¯„圍。 + +## 厚įžŠæ¨Ŗæŋ + +每個 Glossary 術čĒžéƒŊå­˜å„˛åœ¨ä¸€å€‹ markdown 文äģļ中īŧŒä¸ĻéĩåžĒ這個æ¨Ŗæŋīŧš + +```md +--- +title: +status: +category: +--- + +## 是äģ€éēŧ + +å°čŠ˛æŠ€čĄ“æˆ–æĻ‚åŋĩįš„åŋĢ速į¸Ŋįĩã€‚ + +## č§Ŗæąēįš„å•éĄŒ + +關æ–ŧ厃所č§Ŗæąēįš„å•éĄŒįš„åšžåĨčŠąã€‚ + +## åĻ‚äŊ•åšĢ劊我們 + +į”¨åšžåĨ芹čĒĒæ˜Žé€™å€‹æąčĨŋ是åĻ‚äŊ•č§Ŗæąēå•éĄŒįš„。 +``` + +### æ¨™éĄŒ + +**title** label 將始įĩ‚äŊæ–ŧ厚įžŠå¸ƒåą€įš„頂部īŧŒå…ļå€ŧ應äŊŋį”¨æ¨™éĄŒå¤§å°å¯Ģ。 + +```md +--- +title: 厚įžŠæ¨Ŗæŋ +``` + +### į‹€æ…‹ + +**status** label 將å‡ēįžåœ¨ title label 䚋垌。這個 label äģŖčĄ¨č‘—é€™å€‹åŽšįžŠčˇé›ĸ厌成還有多遠。 + +有效å€ŧīŧš + +- Completed +- Feedback Appreciated +- Not Started + +äŊ å¯äģĨéš¨æ™‚å°ä¸€å€‹åˇ˛åŽŒæˆįš„厚įžŠæå‡ēč­°éĄŒã€‚į•ļ一個厚įžŠč™•æ–ŧčŽŠåŒ–ä¸­æ™‚īŧŒåŽƒįš„į‹€æ…‹å°‡čĸĢæ”ščŽŠį‚ē *Feedback Appreciated*。 + +```md +--- +title: 厚įžŠæ¨Ąį‰ˆ +status: Feedback Appreciated +``` + +### Tags + +**tag** label 跟隨著 status label。 +į‚ēäē†čŽ“ tag 有意įžŠä¸”對äŊŋį”¨č€…有åšĢ劊īŧŒæˆ‘們將嚴æ ŧäŊŋį”¨åŽƒå€‘。 +應į”¨å¤Ē多įš„ tag åĒ會削åŧąå…ļ意įžŠã€‚ +除äē† `fundamental`īŧŒåŽƒåƒ…襨į¤ē需čĻį†č§Ŗå…ļäģ–雲įĢ¯åŽŸį”ŸæĻ‚åŋĩįš„襓čĒžīŧ›å¤§å¤šæ•¸čĄ“čĒžå¯čƒŊåĒ有一個 tag。 + +**æŗ¨æ„**īŧščĢ‹åĒ在įļ­č­ˇč€…扚准įš„情æŗä¸‹åŧ•å…Ĩ新 tag。在į‚ēæĸį›Žæˇģ加 tag 時īŧŒčĢ‹įĸēäŋåŽƒå€‘įš„æ‹ŧå¯Ģ與下éĸ列å‡ēįš„厌全į›¸åŒīŧˆå–Žæ•¸īŧŒį„ĄéŒ¯å­—īŧ‰ã€‚ + +į›Žå‰įš„ tag 有īŧš + +- application +- architecture +- fundamental +- infrastructure +- methodology +- networking +- property +- security + +```md +--- +title: 厚įžŠæ¨Ŗæŋ +status: Feedback Appreciated +tags: ["tag 1", "tag 2", ""] +--- +``` + +### 厚įžŠ + +#### ä¸‰å€‹å°æ¨™éĄŒ + +**æŠ€čĄ“**和**æĻ‚åŋĩ**類åˆĨįš„厚įžŠåŒ…åĢä¸‰å€‹å°æ¨™éĄŒã€‚ + +- **是äģ€éēŧ**īŧšå°æˆ‘們æ­Ŗ在čĢ‡čĢ–įš„內厚提䞛一個į°ĄįŸ­č€Œæ¸…æ™°įš„æĻ‚čŋ°ã€‚ +- **č§Ŗæąēįš„å•éĄŒ**īŧšé—œæŗ¨å•éĄŒīŧŒč€Œä¸æ˜¯č§Ŗæąēæ–šæĄˆīŧˆé€™åœ¨ä¸‹ä¸€į¯€æœƒæœ‰īŧ‰ã€‚éŋ免提及所厚įžŠįš„襓čĒžã€‚å•éĄŒįš„重éģžæ˜¯ *äģ€éēŧ* å°Žč‡´æˆ‘å€‘éœ€čĻé‚Ŗå€‹æąčĨŋ。 +- **åĻ‚äŊ•åšĢ劊我們**īŧšįžåœ¨īŧŒå›žåˆ°é€™å€‹čĄ“čĒžä¸Šã€‚厃是åĻ‚äŊ•č§Ŗæąē上éĸ描čŋ°įš„å•éĄŒįš„īŧŸ + +æŗ¨æ„īŧŒ**åąŦ性** 不需čĻå–Žį¨įš„įĢ į¯€ã€‚一個厚įžŠå°ąčļŗ夠äē†ã€‚ + +į‚ēäē†äžŋæ–ŧ寊æŸĨīŧŒčĢ‹äŊŋį”¨**čĒžįžŠįš„æ›čĄŒįŦĻ**īŧˆæ¯čĄŒä¸€åĨ芹īŧ‰ã€‚ + +#### 品čŗĒč‡ŗ上 + +åĻ‚æžœčĸĢ合äŊĩīŧŒäŊ įš„提äē¤å°‡æˆį‚ē該術čĒžįš„ CNCF 厘斚厚įžŠīŧˆį›´åˆ°å…ļäģ–äēēæ”šé€˛åŽƒīŧ‰ã€‚ +å‰ĩåģē一個įŦĻ合 CNCF éĢ˜æ¨™æē–įš„襓čĒžä¸čƒŊ操䚋過æ€ĨīŧŒå“čŗĒ則需čĻæ™‚é–“å’ŒåŠĒ力。 + +**做äŊ įš„į ”įŠļ**īŧšåŗäŊŋäŊ įĸēäŋĄäŊ įŸĨé“é€™å€‹čĄ“čĒžīŧŒäšŸčĻéŠ—č­‰äŊ æ˜¯åĻ垗到äē†åŽƒã€‚ +我們įļ“常在įĩ„įš”中äģĨ某į¨Žæ–šåŧäŊŋį”¨čĄ“čĒžīŧŒäŊ†é€™å¯čƒŊä¸Ļä¸åæ˜ å…¨č˛Œã€‚ +į•ļäŊ åšį ”įŠļ時īŧŒį‰šåˆĨ是į•ļäŊ å°é€™å€‹čĄ“čĒžä¸æ˜¯ 100% į†Ÿæ‚‰æ™‚īŧŒčĻäŊŋį”¨å¤šį¨Žčŗ‡æēã€‚ +č¨ąå¤šåŽšįžŠæ˜¯į‰‡éĸįš„īŧŒå°¤å…ļ是į”ąäž›æ‡‰å•†æäž›įš„厚įžŠã€‚Glossary åŋ…須包åĢ䞛應商中įĢ‹įš„、全įƒå…ŦčĒįš„厚įžŠã€‚ + +**不čĻį›œįĢŠ**īŧšåŒæ¨Ŗįš„čĻå‰‡éŠį”¨æ–ŧ Glossary 和äģģäŊ•å…ļäģ–åš´č‚…įš„å‡ēį‰ˆį‰Šã€‚ +不čĻč¤‡čŖŊ和į˛˜č˛ŧå…ļäģ–äēēįš„äŊœå“īŧŒé™¤éžäŊ æ˜¯åŧ•į”¨å’Œč˛ĸįģįĩĻäģ–們įš„。 +åĻ‚æžœäŊ å–œæ­ĄæŸå€‹åŽšįžŠįš„某個部分īŧŒčĢ‹į”¨äŊ č‡Ēåˇąįš„芹䞆čŊ‰čŋ°åŽƒã€‚ + +**åƒč€ƒæŦŠå¨čŗ‡æē**īŧšåœ¨å¯čƒŊįš„情æŗä¸‹īŧŒé€ŖæŽĨ到æŦŠå¨įš„čŗ‡æēīŧŒåĻ‚å°ˆæĄˆæ–‡äģļ。 +æŗ¨æ„īŧŒæˆ‘們不čƒŊé€ŖæŽĨ到䞛應商開į™ŧįš„內厚。 + +#### äŋæŒį°Ąå–Ž + +æœŦ Glossary 旨在 **į”¨į°Ąå–Žįš„文字č§Ŗ釋複雜įš„æĻ‚åŋĩ** --這是一項äģ¤äēē驚訝įš„č‰ąåˇ¨äģģ務īŧŒå¯čƒŊ需čĻå¤šæŦĄäŋŽč¨‚。 +在čĩˇč‰äŊ įš„厚įžŠæ™‚īŧŒčĻå§‹įĩ‚į‰ĸč¨˜å—įœžã€‚éŋ免äŊŋį”¨čĄŒæĨ­čĄ“čĒžå’ŒæĩčĄŒčĒž--äŊ å¯čƒŊ會į™ŧįžč‡Ēåˇąåˆå›žåˆ°äē†é€™äē›čĄ“čĒžå’ŒæĩčĄŒčĒžīŧŒé‚Ŗ時候äŊ æœƒéœ€čĻč¨“įˇ´č‡Ēåˇąæ‰žæ‰žįœ‹å…ļäģ–įš„芞čĒžã€‚ + +在遊į•ļįš„時候īŧŒäŊŋį”¨ **įžå¯Ļ世į•Œįš„䞋子**īŧŒåšĢåŠŠčŽ€č€…īŧˆå°¤å…ļæ˜¯éžæŠ€čĄ“æ€§įš„īŧ‰æ›´åĨŊ地į†č§ŖäŊ æ‰€č§Ŗ釋įš„æĻ‚åŋĩ在 *äģ€éēŧ時候* 和 *į‚ēäģ€éēŧ* 是į›¸é—œįš„。 + +į•ļ在äŊ įš„厚įžŠä¸­äŊŋį”¨æ™‚īŧŒä¸€åŽščĻ **é€ŖæŽĨ到įžæœ‰įš„ Glossary 術čĒž**īŧˆåĒ有įŦŦ一æŦĄæåˆ°įš„æ™‚å€™æ‡‰čŠ˛æœ‰čļ…鏈æŽĨīŧ‰ã€‚ + +**䞋子**īŧšįœ‹įœ‹[服務įļ˛æ ŧ](/zh-tw/service-mesh/) įš„"是äģ€éēŧ"部分。厃鏈æŽĨ到äē†åžŽæœå‹™ã€æœå‹™ã€å¯é æ€§å’Œå¯č§€å¯Ÿæ€§įš„厚įžŠã€‚ +此外īŧŒåŽƒé‚„äŊŋį”¨äē†ä¸€å€‹įœŸå¯Ļįš„䞋子īŧŒå°‡åžŽæœå‹™į’°åĸƒä¸­įš„įļ˛čˇ¯æŒ‘戰īŧˆéžæŠ€čĄ“äēēå“Ąį„Ąæŗ•į†č§Ŗįš„å•éĄŒīŧ‰čˆ‡ wifi å•éĄŒīŧˆäŊŋį”¨į­†č¨˜åž‹é›ģč…Ļįš„äēēéƒŊčƒŊį†č§Ŗįš„å•éĄŒīŧ‰é€˛čĄŒæ¯”čŧƒã€‚ +在可čƒŊįš„情æŗä¸‹īŧŒå˜—čŠĻåģēįĢ‹é€™į¨Žč¯įšĢ。 + +#### åžž Google 或 Word 文äģļ開始 + +我們åģēč­°åžž Google 或 Word 文äģļ開始īŧŒčŽ“厃靜įŊŽåšžå¤ŠīŧŒį„ļ垌再重新寊čĻ–。 +這將äŊŋäŊ čƒŊ夠抓äŊé‚Ŗäē›å¯äģĨį”¨æ›´į›´č§€å’Œæ›´åŽšæ˜“į†č§Ŗįš„æ–šåŧäž†čĄ¨é”įš„įŸ­čĒžæˆ–čĄ¨é”æ–šåŧã€‚ +此外īŧŒįĸēäŋåœ¨æäē¤ PR å‰é€˛čĄŒæ‹ŧå¯ĢæĒĸæŸĨ。 + +į‚ēäē†įĸēäŋåœ¨åˇĨäŊœæœŸé–“æ˛’æœ‰å…ļäģ–äēē提äē¤ PRīŧŒčĢ‹į”ŗčĢ‹ä¸€å€‹č­°éĄŒīŧˆæˆ–å‰ĩåģē一個īŧ‰īŧŒä¸ĻčĻæą‚分配įĩĻäŊ ã€‚更多čŗ‡č¨ŠčĢ‹åƒčĻ‹[åĻ‚äŊ•č˛ĸįģ](/zh-tw/contribute/) 文æĒ”。 + +在開始䚋前īŧŒčĢ‹é–ąčŽ€ä¸€äē›åˇ˛į™ŧ襨įš„ Glossary 術čĒžīŧŒäģĨäē†č§Ŗå…ļčŠŗį´°į¨‹åēĻ和é›ŖåēĻīŧŒäģĨ及äŊ•æ™‚čˆ‰äž‹åˆéŠã€‚ + +## čŠ•å¯ŠéŽį¨‹īŧšæœŸåž…äģ€éēŧ + +čĢ‹æŗ¨æ„īŧŒæˆ‘們į›Žå‰åĒ有兊個įļ­č­ˇč€…在æĨ­é¤˜æ™‚間做這個åˇĨäŊœã€‚ +åļįˆžīŧŒæˆ‘們會垈åŋĢ寊æŸĨ術čĒžīŧ›åœ¨å…ļäģ–情æŗä¸‹īŧŒå¯čƒŊ需čĻä¸€äē›æ™‚é–“ — 我們感čŦäŊ įš„耐åŋƒã€‚ +åĻ‚æžœäŊ æœ‰äģģäŊ•å•éĄŒīŧŒčĢ‹åœ¨ #glossary-localization-traditional-chinese Slack é ģé“čˆ‡æˆ‘å€‘č¯įšĢīŧˆé—œæ–ŧ在å“ĒčŖĄäģĨ及åĻ‚äŊ•æ‰žåˆ°čŠ˛é ģ道īŧŒčĢ‹åƒč€ƒæˆ‘們įš„[åĻ‚äŊ•č˛ĸįģ](/zh-tw/contribute/) 文æĒ”īŧ‰ã€‚ + +我們įš„į›Žæ¨™æ˜¯čŽ“雲įĢ¯åŽŸį”Ÿ Glossary 成į‚ēį›Ąå¯čƒŊ最åĨŊįš„čŗ‡æēã€‚ +一æ—ĻäŊ æäē¤äē†ä¸€å€‹ PRīŧŒæˆ‘們可čƒŊ會čĻæą‚é€˛čĄŒä¸€æŦĄæˆ–多æŦĄäŋŽæ”šã€‚ +不čĻæ„Ÿåˆ°æ˛Žå–Ē — č¨ąå¤š PR éƒŊ是這æ¨Ŗįš„情æŗã€‚ +這äē›äž†å›žįš„äŋŽæ”šå’Œæˆ‘們įš„合äŊœå°‡įĸēäŋäŊ įš„č˛ĸįģ成į‚ē一個有åšĢ劊įš„厚įžŠīŧŒčĸĢ全įƒå„地įš„čŽ€č€…æ‰€é–ąčŽ€å’Œåƒč€ƒã€‚ diff --git a/content/zh-tw/transport-layer-security.md b/content/zh-tw/transport-layer-security.md new file mode 100644 index 0000000000..10d9e5ea3d --- /dev/null +++ b/content/zh-tw/transport-layer-security.md @@ -0,0 +1,29 @@ +--- +title: å‚ŗčŧ¸åą¤åŽ‰å…¨æ€§å”č­° (TLS) +status: Completed +category: æĻ‚åŋĩ +tags: ["厉全", "įļ˛čˇ¯", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +å‚ŗčŧ¸åą¤åŽ‰å…¨æ€§å”č­° (TLS) 是一į¨Žč¨­č¨ˆį”¨æ–ŧ在įļ˛čˇ¯é€šč¨Šä¸­æäž›åŽ‰å…¨æ€§įš„å”č­°ã€‚ +厃įĸēäŋé€éŽįļ˛čˇ¯å‚ŗčŧ¸įš„čŗ‡æ–™čƒŊ厉全送達īŧŒ +éŋ免遭į›Ŗ控或äŋŽæ”šįš„可čƒŊ性。 +æ­¤ä¸€å”č­°åģŖæŗ›į”¨æ–ŧå„éĄžæ‡‰į”¨īŧŒč­ŦåĻ‚åŗæ™‚é€šč¨Šã€é›ģ子éƒĩäģļį­‰ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +č‹Ĩæ˛’æœ‰ TLSīŧŒåƒæ˜¯į€čĻŊįŋ’æ…Ŗ、é›ģéƒĩ垀䞆、įˇšä¸Šå°čŠąčˆ‡čĻ–č¨Šæœƒč­°į­‰æ•æ„Ÿčŗ‡č¨ŠīŧŒ +在å‚ŗčŧ¸éŽį¨‹ä¸­å¯čƒŊčŧ•æ˜“地čĸĢäģ–äēēčŋŊčš¤æˆ–äŋŽæ”šã€‚ +äŊŋį”¨äŧēæœå™¨čˆ‡į”¨æˆļįĢ¯æ‡‰į”¨å‡æ”¯æ´ TLS įš„æ–šåŧīŧŒ +čƒŊįĸēäŋčŗ‡æ–™åœ¨å‚ŗčŧ¸éŽį¨‹ä¸­čĸĢ加密īŧŒį„Ąæŗ•čĸĢįŦŦ三斚įĒēįœ‹ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +TLS 透過一įŗģ列įš„įˇ¨įĸŧæŠ€čĄ“īŧŒį‚ēįļ˛čˇ¯čŗ‡æ–™å‚ŗčŧ¸æ™‚æäž›åŽ‰å…¨é˜˛č­ˇã€‚ +TLS 讓į”¨æˆļįĢ¯æ‡‰į”¨čˆ‡äŧē服器 (例åĻ‚įļ˛é į€čĻŊå™¨čˆ‡éŠ€čĄŒįļ˛įĢ™) 之間åģēįĢ‹ä¸€įĩ„加密é€Ŗįˇšã€‚ +ä¸Ļä¸”åŽƒčŽ“į”¨æˆļįĢ¯æ‡‰į”¨čƒŊæ­Ŗįĸēåœ°č­˜åˆĨ所å‘ŧåĢįš„äŧē服器īŧŒ +äģĨ降äŊŽčˆ‡åŊ造įļ˛įĢ™æŽĨ觸įš„éĸ¨éšĒ。 +č—‰æ­¤įĸēäŋäŊŋį”¨ TLS įš„應į”¨é–“čŗ‡æ–™å‚ŗčŧ¸ä¸æœƒčĸĢįŦŦ三斚įĒēįœ‹čˆ‡į›Ŗ控īŧŒ +äŋč­ˇåŒ…æ‹ŦäŋĄį”¨åĄåĄč™Ÿã€å¯†įĸŧ、äŊįŊŽį­‰åœ¨å…§įš„æ•æ„Ÿčˆ‡į§äēēčŗ‡č¨Šįš„厉全。 diff --git a/content/zh-tw/vertical-scaling.md b/content/zh-tw/vertical-scaling.md new file mode 100644 index 0000000000..74f0e4a1da --- /dev/null +++ b/content/zh-tw/vertical-scaling.md @@ -0,0 +1,32 @@ +--- +title: 垂į›´æ“´åą• +status: Completed +category: æĻ‚åŋĩ +tags: ["åŸēį¤Žč¨­æ–Ŋ", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +垂į›´æ“´åą•äšŸčĸĢį¨ąį‚ēã€Œå‘ä¸Šå’Œå‘ä¸‹æ“´åą•ã€īŧŒæ˜¯ä¸€é …į•ļįŗģįĩąč˛ čŧ‰æéĢ˜æ™‚透過對喎一[į¯€éģž](/zh-tw/nodes/)åĸžåŠ  CPU 或 RAM 䞆提升įŗģįĩąåŽšé‡įš„æŠ€čĄ“ã€‚ +å‡č¨­æ‚¨įš„įŗģįĩąä¸­æœ‰ä¸€å° 4GB RAM įš„č¨ˆįŽ—抟īŧŒä¸Ļ且æƒŗčĻæå‡įŗģįĩąįš„厚量č‡ŗ 16GB RAMīŧŒé‚Ŗéēŧ對這個įŗģįĩąäŊœåž‚į›´æ“´å°ąåą•æ„å‘ŗč‘—åˆ‡æ›į‚ēåĻ一台 16GB RAM įš„č¨ˆįŽ—抟。 +(čĢ‹åƒč€ƒåĻ一į¨Žæ“´åą•æ–šæŗ•īŧš[æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling/)) + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į•ļ應į”¨į¨‹åŧįš„éœ€æą‚æˆé•ˇčļ…å‡ēčŠ˛æ‡‰į”¨į¨‹åŧå¯Ļ例įš„į•ļ前厚量時īŧŒ +我們需čĻæ‰žå‡ē一į¨Žæ–šåŧäž†æ“´åą•įŗģįĩą(åĸžåŠ åŽšé‡)。 +我們可äģĨ加å…Ĩæ›´å¤šč¨ˆįŽ—čŗ‡æēåˆ°į›Žå‰įš„į¯€éģž(垂į›´æ“´åą•)īŧŒ +或是加å…Ĩ更多į¯€éģžč‡ŗæ­¤įŗģįĩą([æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling/))。 +[å¯æ“´åą•æ€§](/zh-tw/scalability/)有劊æ–ŧ提升įŗģįĩąįš„įĢļįˆ­åŠ›ã€æ•ˆįŽ‡ã€čŠ•åƒšäģĨ及品čŗĒ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +垂į›´æ“´åą•čŽ“您不į”¨äŋŽæ”šæ‡‰į”¨į¨‹åŧä¸­įš„į¨‹åŧįĸŧå°ąčƒŊčĒŋ整äŧē服器įš„大小。 +į›¸å°åœ°īŧŒæ°´åšŗæ“´åą•å‰‡čĻæą‚應į”¨į¨‹åŧåŋ…須是可čĸĢ複čŖŊįš„īŧŒč€Œä¸”垈有可čƒŊ需čĻäŋŽæ”šį¨‹åŧįĸŧ。 +垂į›´æ“´åą•č—‰į”ąåĸžåŠ č¨ˆįŽ—čŗ‡æēäž†æå‡įžæœ‰æ‡‰į”¨į¨‹åŧįš„厚量īŧŒ +äŊŋ垗應į”¨į¨‹åŧčƒŊå¤ č™•į†æ›´å¤ščĢ‹æą‚ä¸ĻåŒæ™‚åŸˇčĄŒæ›´å¤šåˇĨäŊœé‡ã€‚ + +## į›¸é—œčŠžåŊ™ {#related-terms} + +* [æ°´åšŗæ“´åą•](/zh-tw/horizontal-scaling/) +* [č‡Ēå‹•æ“´åą•](/zh-tw/auto-scaling/) diff --git a/content/zh-tw/virtual-machine.md b/content/zh-tw/virtual-machine.md new file mode 100644 index 0000000000..3dc567eb6f --- /dev/null +++ b/content/zh-tw/virtual-machine.md @@ -0,0 +1,40 @@ +--- +title: 虛æ“Ŧ抟器 +status: Completed +category: æŠ€čĄ“ +tags: ["åŸēæœŦ原į†", "åŸēį¤Žč¨­æ–Ŋ", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +虛æ“Ŧ抟器īŧˆVMīŧ‰æ˜¯ä¸€å°ä¸å—限æ–ŧį‰šåŽšįĄŦéĢ”įš„č¨ˆįŽ—抟及å…ļäŊœæĨ­įŗģįĩąã€‚ +透過[虛æ“Ŧ化](/zh-tw/virtualization/)æŠ€čĄ“īŧŒ +我們可äģĨ將一台å¯ĻéĢ”įš„č¨ˆįŽ—æŠŸåˆ†å‰˛æˆå¤šå°č™›æ“Ŧįš„č¨ˆįŽ—抟。 +這į¨Žåˆ†å‰˛å¯äģĨ讓įĩ„įš”å’ŒåŸēį¤Žč¨­æ–Ŋæäž›č€…čƒŊčŧ•éŦ†åœ°åģēįĢ‹å’ŒåˆĒ除虛æ“Ŧ抟器īŧŒ +č€Œä¸æœƒåŊąéŸŋåē•åą¤įš„įĄŦéĢ”。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +į•ļ一台[čŖ¸æŠŸ](/zh-tw/bare-metal-machine/)įļåŽšåˆ°å–Žä¸€äŊœæĨ­įŗģįĩąæ™‚īŧŒ +芲計įŽ—抟įš„čŗ‡æēäŊŋį”¨æƒ…æŗé€šå¸¸åœ¨æŸį¨Žį¨‹åēĻ上會受到限åˆļ。 +åĻ外īŧŒį•ļ一個äŊœæĨ­įŗģįĩąįļåŽšåˆ°å–Žä¸€å¯ĻéĢ”č¨ˆįŽ—抟時īŧŒ +å…ļ可į”¨æ€§äšŸæœƒčˆ‡čŠ˛įĄŦéĢ”įš„į›´æŽĨį›¸é—œã€‚ +åĻ‚æžœå¯ĻéĢ”č¨ˆįŽ—抟因į‚ēįļ­č­ˇæˆ–įĄŦéĢ”æ•…éšœč€Œé›ĸįˇšīŧŒ +芲äŊœæĨ­įŗģįĩąäšŸæœƒéš¨äš‹é›ĸįˇšã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +透過č§Ŗ除äŊœæĨ­įŗģįĩąčˆ‡å–Žä¸€å¯ĻéĢ”č¨ˆįŽ—抟䚋間įš„į›´æŽĨįļåŽšīŧŒ +我們äžŋ可äģĨč§ŖæąēčŖ¸æŠŸįš„åšžå€‹å•éĄŒīŧš +äŊˆåģē時間、įĄŦéĢ”äŊŋį”¨įŽ‡å’ŒåžŠåŽŸåŠ›ã€‚ + +在äŊˆåģē新įš„č™›æ“Ŧ抟器時īŧŒ +我們不需čĻį‚ēæ­¤čŗŧč˛ˇã€åŽ‰čŖæˆ–č¨­åŽšæ–°įš„įĄŦéĢ”īŧŒ +所äģĨäŊˆåģēä¸€å°æ–°č¨ˆįŽ—抟įš„時間äžŋ可äģĨ大嚅地į¸ŽįŸ­ã€‚ +į”ąæ–ŧ我們可äģĨå°‡å¤šå°č™›æ“Ŧ抟器攞įŊŽåœ¨ä¸€å°å¯ĻéĢ”č¨ˆįŽ—抟上īŧŒ +é€™čŽ“æˆ‘å€‘čƒŊ夠更有效įŽ‡åœ°äŊŋį”¨æ—ĸ有įš„įĄŦéĢ”čŗ‡æēã€‚ +虛æ“Ŧ抟器不受į‰šåŽšå¯ĻéĢ”č¨ˆįŽ—抟įš„限åˆļīŧŒ +因此䚟比å¯ĻéĢ”č¨ˆįŽ—æŠŸæ›´å…ˇæœ‰åžŠåŽŸåŠ›ã€‚ +į•ļ一台å¯ĻéĢ”č¨ˆįŽ—抟需čĻé›ĸįˇšæ™‚īŧŒ +運行æ–ŧå…ļ上įš„č™›æ“Ŧ抟器可äģĨį„Ąéœ€æˆ–åĒ需æĨĩ少įš„停抟時間īŧŒ +äžŋ可äģĨčŊ‰į§ģ到åĻ一台å¯ĻéĢ”č¨ˆįŽ—抟上。 diff --git a/content/zh-tw/virtualization.md b/content/zh-tw/virtualization.md new file mode 100644 index 0000000000..ce85fe1aa2 --- /dev/null +++ b/content/zh-tw/virtualization.md @@ -0,0 +1,31 @@ +--- +title: 虛æ“Ŧ化 +status: completed +category: æŠ€čĄ“ +tags: ["åŸēæœŦ原į†", "åŸēį¤Žč¨­æ–Ŋ", "æ–šæŗ•čĢ–"] +--- + +## 是äģ€éēŧ {#what-it-is} + +åœ¨é›˛įĢ¯åŽŸį”Ÿé‹įŽ—中īŧŒ +虛æ“Ŧ化指įš„是將一台å¯ĻéĢ”č¨ˆįŽ—抟īŧˆæœ‰æ™‚į¨ąį‚ēäŧē服器īŧ‰īŧŒ +äŊŋå…ļčƒŊå¤ é‹čĄŒå¤šå€‹į¨įĢ‹äŊœæĨ­įŗģįĩąįš„æ–šæŗ•ã€‚ +這äē›į¨įĢ‹įš„äŊœæĨ­įŗģįĩąäģĨ及厃們專åąŦįš„運įŽ—čŗ‡æēīŧˆCPUã€č¨˜æ†ļéĢ”å’Œįļ˛čˇ¯īŧ‰čĸĢį¨ąį‚ē虛æ“Ŧ抟器或 VM。 +į•ļ我們提到[虛æ“Ŧ抟器](/zh-tw/virtual-machine/)時īŧŒåœ¨čŦ›įš„å…ļå¯Ļ是į”ąčģŸéĢ”厚įžŠįš„č¨ˆįŽ—抟。 +這į¨Žč¨ˆįŽ—æŠŸåœ¨å¤–č§€ä¸Šå’Œčˆ‡čĄŒį‚ē上éƒŊ像是įœŸå¯Ļįš„č¨ˆįŽ—抟īŧŒäŊ†å¯Ļéš›ä¸ŠåŽƒæœƒčˆ‡å…ļäģ–č™›æ“ŦæŠŸå™¨å…ąį”¨įĄŦéĢ”čŗ‡æēã€‚ +[雲įĢ¯é‹įŽ—](/zh-tw/cloud-computing/) ä¸ģčĻæ˜¯į”ąč™›æ“ŦåŒ–æŠ€čĄ“æ‰€éŠ…å‹•ã€‚ +舉例來čĒĒīŧŒ +äŊ å¯äģĨåžž AWS į§Ÿį”¨ä¸€å°ã€Œč¨ˆįŽ—抟」īŧŒ +äŊ†å¯Ļéš›ä¸ŠåŽƒæ˜¯ä¸€å°č™›æ“Ŧ抟器。 + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +虛æ“Ŧ化č§Ŗæąēäē†å¤šå€‹å•éĄŒīŧŒ +比斚čĒĒåŽƒå…č¨ąæ›´å¤šæ‡‰į”¨į¨‹åŧåœ¨åŒä¸€å°å¯ĻéĢ”æŠŸå™¨ä¸Šé‹čĄŒīŧŒ +而且還čƒŊ將厃們į›¸äē’éš”é›ĸäģĨįĸēäŋåŽ‰å…¨æ€§ã€‚ + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +åœ¨č™›æ“ŦæŠŸå™¨ä¸Šé‹čĄŒįš„應į”¨į¨‹åŧä¸Ļ不įŸĨ道厃們æ­Ŗåœ¨å…ąį”¨ä¸€å°å¯ĻéĢ”č¨ˆįŽ—抟。 +虛æ“Ŧ化還čƒŊ讓čŗ‡æ–™ä¸­åŋƒįš„äŊŋį”¨č€…在數分鐘內啟動一台新įš„ã€Œč¨ˆįŽ—抟」īŧˆå…ļå¯Ļæ˜¯č™›æ“Ŧ抟器īŧ‰īŧŒ +而į„Ąéœ€æ“”åŋƒåĸžåŠ æ–°įš„č¨ˆįŽ—抟到čŗ‡æ–™ä¸­åŋƒæ‰€å¸ļ來įš„å¯ĻéĢ”限åˆļ。 diff --git a/content/zh-tw/zero-trust-architecture.md b/content/zh-tw/zero-trust-architecture.md new file mode 100644 index 0000000000..c094572d77 --- /dev/null +++ b/content/zh-tw/zero-trust-architecture.md @@ -0,0 +1,25 @@ +--- +title: é›ļäŋĄäģģæžļ構 +status: Completed +category: æĻ‚åŋĩ +tags: ["厉全", "", ""] +--- + +## 是äģ€éēŧ {#what-it-is} + +é›ļäŋĄäģģæžļ構是一į¨ŽåŽŒå…¨į§ģ除äŋĄäģģįš„ IT įŗģįĩąč¨­č¨ˆčˆ‡å¯ĻäŊœæ–šæŗ•ã€‚ +å…ļæ ¸åŋƒįš„原則是「永不äŋĄäģģīŧŒå§‹įĩ‚éŠ—č­‰ã€īŧŒįŗģįĩąä¸­įš„čŖįŊŽæˆ–įŗģįĩąæœŦčēĢåœ¨čˆ‡å…ļäģ–å…ƒäģļæēé€šå‰īŧŒéƒŊåŋ…é ˆå…ˆéŠ—č­‰č‡Ēåˇąįš„čēĢäģŊ。 +åœ¨č¨ąå¤šäŧæĨ­įļ˛čˇ¯ä¸­īŧŒį”ąæ–ŧįŗģįĩąčˆ‡čŖįŊŽéƒŊ在äŧæĨ­įļ˛čˇ¯įš„é‚Šį•Œå…§īŧŒå› æ­¤äģ–們大多時候可äģĨč‡Ēį”ąæēé€šã€‚ +į„ļ而īŧŒé›ļäŋĄäģģæžļ構åģæŽĄå–äē†į›¸åįš„做æŗ•īŧšåŗäŊŋ在įļ˛čˇ¯é‚Šį•Œå…§īŧŒįŗģįĩąä¸­įš„å…ƒäģļåœ¨é€˛čĄŒäģģäŊ•æēé€šå‰īŧŒéƒŊåŋ…é ˆå…ˆé€šéŽéŠ—č­‰ã€‚ + +## č§Ŗæąēįš„å•éĄŒ {#problem-it-addresses} + +在å‚ŗįĩąåŸēæ–ŧäŋĄäģģįš„æ–šæŗ•ä¸­īŧŒäš‹æ‰€äģĨčĒį‚ē存在æ–ŧäŧæĨ­įļ˛čˇ¯é‚Šį•Œå…§įš„įŗģįĩąčˆ‡čŖįŊŽæ˜¯åŽ‰å…¨įš„īŧŒæ˜¯å› į‚ēäģ–們éƒŊ在受äŋĄäģģįš„įļ˛čˇ¯é‚Šį•Œå…§ã€‚ +äŊ†æ˜¯é›ļäŋĄäģģæžļ構čĒį‚ēīŧŒé€™į¨ŽäŋĄäģģæ¨Ąåŧå¯Ļéš›ä¸Šå­˜åœ¨č‘—åŧąéģžã€‚ +åĻ‚æžœæ”ģæ“Šč€…å–åž—äē†å°äŋĄäģģčŖįŊŽįš„存取æŦŠé™īŧŒå› į‚ēæ”ģæ“Šč€…åˇ˛įļ“在受äŋĄäģģįš„įļ˛čˇ¯é‚Šį•Œå…§īŧŒäģ–å°ąå¯äģĨ在įŗģįĩąä¸­č‡Ēį”ąį§ģ動īŧŒä¸Ļ且į˛åž—įŗģįĩąčŗĻäēˆčŠ˛čŖįŊŽįš„äŋĄäģģ與æŦŠé™īŧŒé€˛č€ŒäŊŋįŗģįĩąåŽšæ˜“遭受æ”ģ擊。 +不過在é›ļäŋĄäģģįš„æžļ構下īŧŒå› į‚ēäŋĄäģģčĸĢį§ģ除äē†īŧŒæ”ģæ“Šč€…åœ¨é€˛å…Ĩįŗģįĩąįš„下一個į’°į¯€å‰īŧŒéƒŊåŋ…é ˆå…ˆé€šéŽéŠ—č­‰īŧŒæ‰€äģĨé€˛č€Œæ¸›å°‘äē†æ”ģ擊éĸ。 + +## åĻ‚äŊ•åšĢ劊我們 {#how-it-helps} + +æŽĄį”¨é›ļäŋĄäģģæžļ構įš„ä¸ģčĻåĨŊč™•å°ąæ˜¯æ¸›å°‘äē†æ”ģ擊éĸīŧŒčŽ“įŗģįĩąčŽŠåž—更厉全。 +åžžäŧæĨ­įŗģįĩąä¸­į§ģ除äŋĄäģģīŧŒå°ąå¯äģĨ讓æ”ģæ“Šč€…åŋ…須通過更多更åŧˇįš„厉全閘門īŧŒæ‰čƒŊį˛åž—對įŗģįĩąå…ļäģ–區域įš„存取æŦŠé™ã€‚ diff --git a/i18n/bn.toml b/i18n/bn.toml index 96937018d0..225cc1fb3a 100644 --- a/i18n/bn.toml +++ b/i18n/bn.toml @@ -44,6 +44,9 @@ other = "āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤" other = "āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ¨ā§€āĻ¤āĻŋ" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "āĻĻā§āĻŦāĻžāĻ°āĻž" diff --git a/i18n/de.toml b/i18n/de.toml index d78c6b964a..3aa458cb3a 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -44,6 +44,9 @@ other = "Alle Rechte vorbehalten" other = "Datenschutzerklärung" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "Von" diff --git a/i18n/en.toml b/i18n/en.toml index fb5eccf80c..57eda06471 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -43,6 +43,8 @@ other = "All Rights Reserved" [footer_privacy_policy] other = "Privacy Policy" +[footer_hub_button_text] +other = "All CNCF Sites" # Post (blog, articles etc.) [post_byline_by] diff --git a/i18n/es.toml b/i18n/es.toml index 080b177ee4..838b843740 100644 --- a/i18n/es.toml +++ b/i18n/es.toml @@ -44,6 +44,9 @@ other = "Todos los derechos reservados" other = "Política de privacidad" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "Por" diff --git a/i18n/fr.toml b/i18n/fr.toml new file mode 100644 index 0000000000..9a82166697 --- /dev/null +++ b/i18n/fr.toml @@ -0,0 +1,87 @@ + + +# UI strings. Buttons and similar. + +[ui_pager_prev] +other = "PrÊcÊdent" + +[ui_pager_next] +other = "Suivant" + +[ui_read_more] +other = "En savoir plus" + +[ui_search] +other = "Rechercher sur ce siteâ€Ļ" + +# Used in sentences such as "Posted in News" +[ui_in] +other = "dans" + +# Phrases for tags +[ui_see_all_tags] +other = "Voir tous les tags" +[ui_tag] +other = "Tag" +[ui_tags] +other = "Tags" +[ui_search_by_tags] +other = "Parcourir par Tags" +[ui_tags_intro] +other = "Nous avons catÊgorisÊ les termes du glossaire. Utilisez les filtres pour parcourir les termes par tag." +[ui_or_search_by_tags] +other = "...ou parcourir par tag" +[ui_select_all] +other = "Tout sÊlectionner" +[ui_deselect_all] +other = "Tout dÊsÊlectionner" + +# Footer text +[footer_all_rights_reserved] +other = "Tous droits rÊservÊs" + +[footer_privacy_policy] +other = "Politique de confidentialitÊ" + +[footer_hub_button_text] +other = "Tous les sites de la CNCF" + +# Post (blog, articles etc.) +[post_byline_by] +other = "Par" +[post_created] +other = "CrÊÊ" +[post_last_mod] +other = "Dernière modification" +[post_edit_this] +other = "Modifier cette page" +[post_create_child_page] +other = "CrÊer une page enfant" +[post_create_issue] +other = "Ouvrir un ticket" +[post_create_project_issue] +other = "Ouvrir un ticket de projet" +[post_posts_in] +other = "PostÊs dans" +[post_reading_time] +other = "minute(s) de lecture" + +# Print support +[print_printable_section] +other = "Ceci est la page d'impression multiple de cette section" +[print_click_to_print] +other = "Cliquer ici pour imprimer" +[print_show_regular] +other = "Retour à la vue standard de cette page" +[print_entire_section] +other = "Imprimer la section complète" + +# Feedback section +[feedback_title] +other = "Votre avis" +[feedback_question] +other = "Cette page Êtait-elle utile ?" +[feedback_answer_yes] +other = "Oui" +[feedback_answer_no] +other = "Non" diff --git a/i18n/hi.toml b/i18n/hi.toml index 46dc13b79b..c38f9302bc 100644 --- a/i18n/hi.toml +++ b/i18n/hi.toml @@ -44,6 +44,9 @@ other = "ā¤¸ā¤°āĨā¤ĩā¤žā¤§ā¤ŋā¤•ā¤žā¤° ā¤¸āĨā¤°ā¤•āĨā¤ˇā¤ŋā¤¤" other = "ā¤—āĨ‹ā¤Ēā¤¨āĨ€ā¤¯ā¤¤ā¤ž ā¤¨āĨ€ā¤¤ā¤ŋ" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "ā¤ĻāĨā¤ĩā¤žā¤°ā¤ž" diff --git a/i18n/it.toml b/i18n/it.toml index 64f0d36c62..8a7d9e8a1d 100644 --- a/i18n/it.toml +++ b/i18n/it.toml @@ -44,6 +44,9 @@ other = "Tutti i diritti riservati" other = "Privacy Policy" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "Da" diff --git a/i18n/ko.toml b/i18n/ko.toml index f119ad91d5..399fe58cda 100644 --- a/i18n/ko.toml +++ b/i18n/ko.toml @@ -44,6 +44,9 @@ other = "All Rights Reserved" other = "개ė¸ ė •ëŗ´ ė˛˜ëĻŦ ë°Šėš¨" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "ė˜í•´ė„œ" diff --git a/i18n/pt-br.toml b/i18n/pt-br.toml index 1fc36d2025..34376e0b4b 100644 --- a/i18n/pt-br.toml +++ b/i18n/pt-br.toml @@ -42,6 +42,9 @@ other = "Todos os direitos reservados" other = "Política de Privacidade" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "Por" diff --git a/i18n/ur.toml b/i18n/ur.toml new file mode 100644 index 0000000000..95c072d5cb --- /dev/null +++ b/i18n/ur.toml @@ -0,0 +1,88 @@ + + +# UI strings. Buttons and similar. + +[ui_pager_prev] +other = "ŲžÚ†ÚžŲ„ا" + +[ui_pager_next] +other = "اگŲ„Û’" + +[ui_read_more] +other = "Ų…Ø˛ÛŒØ¯ ŲžÚ‘Úž" + +[ui_search] +other = "اØŗ ØŗاØĻŲš ÚŠŲˆ ØĒŲ„اش ÚŠØąÛŒÚēâ€Ļ" + +# Used in sentences such as "Posted in News" +[ui_in] +other = "Ų…ÛŒÚē" + +# Phrases for tags +[ui_see_all_tags] +other = "ØĒŲ…اŲ… ŲšÛŒÚ¯Ø˛ دیڊڞیÚē" +[ui_tag] +other = "ŲšÛŒÚ¯" +[ui_tags] +other = "ŲšÛŒÚ¯Ø˛" +[ui_search_by_tags] +other = " ŲšÛŒÚ¯Ø˛ ÚŠÛ’ Ø°ØąÛŒØšÛ ØĒŲ„اش ÚŠØąÛŒÚē" +[ui_tags_intro] +other = "ہŲ… Ų†Û’ Ų„ØēØĒ ÚŠÛ’ اŲ„ŲØ§Ø¸ ÚŠÛŒ Ø¯ØąØŦہ بŲ†Ø¯ÛŒ ÚŠÛŒ ہے۔ ŲšÛŒÚ¯ ÚŠÛ’ Ø°ØąÛŒØšÛ’ اŲ„ŲØ§Ø¸ ÚŠŲˆ ØĒŲ„اش ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے ŲŲ„ŲšØąØ° ڊا اØŗØĒØšŲ…اŲ„ ÚŠØąÛŒÚē۔" +[ui_or_search_by_tags] +other = "...یا ŲšÛŒÚ¯Ø˛ ÚŠÛ’ Ø°ØąÛŒØšÛ ØĒŲ„اش ÚŠØąÛŒÚē" +[ui_select_all] +other = "ØĒŲ…اŲ… Ų…Ų†ØĒ؎ب ÚŠØąÛŒÚē" +[ui_deselect_all] +other = "Øŗب ڊا اŲ†ØĒ؎اب ØŽØĒŲ… ÚŠØąÛŒÚē" + +# Footer text +[footer_all_rights_reserved] +other = "ØŦŲ…Ų„ہ Ø­Ų‚ŲˆŲ‚ Ų…Ø­ŲŲˆØ¸ ہیÚē" + +[footer_privacy_policy] +other = "ØąØ§Ø˛Ø¯Ø§ØąÛŒ ÚŠÛŒ ŲžØ§Ų„ÛŒØŗی" + + +[footer_hub_button_text] +other = "All CNCF Sites" + +# Post (blog, articles etc.) +[post_byline_by] +other = "ÚŠÛŒ ØˇØąŲ Øŗے" +[post_created] +other = "بŲ†Ø§ÛŒØ§" +[post_last_mod] +other = "ØĸØŽØąÛŒ Ø¨Ø§Øą ØĒØąŲ…ÛŒŲ… ÚŠÛŒ Ú¯ØĻی۔" +[post_edit_this] +other = "اØŗ ØĩŲØ­Û Ų…ÛŒÚē ØĒØąŲ…ÛŒŲ… ÚŠØąÛŒÚē" +[post_create_child_page] +other = "چاØĻŲ„Úˆ ŲžÛŒØŦ بŲ†Ø§ØĻیÚē" +[post_create_issue] +other = "Ų…ØŗØĻŲ„ہ ÚŠÛŒ Ø§ØˇŲ„اؚ دیÚē" +[post_create_project_issue] +other = "ŲžØąŲˆØŦیڊŲš ڊا Ų…ØŗØĻŲ„ہ بŲ†Ø§ØĻیÚē" +[post_posts_in] +other = "Ų…ÛŒÚē ŲžŲˆØŗŲšØŗ" +[post_reading_time] +other = "Ų…Ų†Ųš ŲžÚ‘ÚžÛŒÚē" + +# Print support +[print_printable_section] +other = "یہ اØŗ ØŗیڊشŲ† ڊا ÚŠØĢÛŒØą ØĩŲØ­Ø§ØĒ ŲžØą Ų…Ø´ØĒŲ…Ų„ ŲžØąŲ†Ųš ایبŲ„ Ų…Ų†Ø¸Øą ہے۔" +[print_click_to_print] +other = "ŲžØąŲ†Ųš ÚŠØąŲ†Û’ ÚŠÛ’ Ų„یے یہاÚē ÚŠŲ„ÚŠ ÚŠØąÛŒÚē۔" +[print_show_regular] +other = "اØŗ ØĩŲØ­Û ÚŠÛ’ باŲ‚اؚدہ Ų…Ų†Ø¸Øą ŲžØą ŲˆØ§ŲžØŗ ØŦاØĻیÚē" +[print_entire_section] +other = "ŲžŲˆØąÛ’ Ø­Øĩے ÚŠŲˆ ŲžØąŲ†Ųš ÚŠØąÛŒÚē" + +# Feedback section +[feedback_title] +other = "ØĒاØĢØąØ§ØĒ" +[feedback_question] +other = "ڊیا یہ ØĩŲØ­Û Ų…Ø¯Ø¯Ú¯Ø§Øą ØĒڞا؟" +[feedback_answer_yes] +other = "ØŦی ہاÚē" +[feedback_answer_no] +other = "Ų†ÛÛŒÚē" diff --git a/i18n/zh-cn.toml b/i18n/zh-cn.toml index 9690e1ebd0..3d589f61f8 100644 --- a/i18n/zh-cn.toml +++ b/i18n/zh-cn.toml @@ -44,6 +44,9 @@ other = "į‰ˆæƒæ‰€æœ‰" other = "隐į§æ”ŋį­–" +[footer_hub_button_text] +other = "All CNCF Sites" + # Post (blog, articles etc.) [post_byline_by] other = "通čŋ‡" diff --git a/i18n/zh-tw.toml b/i18n/zh-tw.toml new file mode 100644 index 0000000000..4d4f3904b5 --- /dev/null +++ b/i18n/zh-tw.toml @@ -0,0 +1,87 @@ + + +# UI strings. Buttons and similar. + +[ui_pager_prev] +other = "上一頁" + +[ui_pager_next] +other = "下一頁" + +[ui_read_more] +other = "é–ąčŽ€æ›´å¤š" + +[ui_search] +other = "搜尋æœŦįĢ™..." + +# Used in sentences such as "Posted in News" +[ui_in] +other = "æ–ŧ" + +# Phrases for tags +[ui_see_all_tags] +other = "æŸĨįœ‹æ‰€æœ‰æ¨™įą¤" +[ui_tag] +other = "標įą¤" +[ui_tags] +other = "標įą¤" +[ui_search_by_tags] +other = "按標įą¤į€čĻŊ" +[ui_tags_intro] +other = "æˆ‘å€‘åˇ˛įļ“å°‡čŠžåŊ™åˆ†éĄžã€‚äŊŋį”¨į¯Šé¸å™¨æŒ‰æ¨™įą¤į€čĻŊ詞åŊ™ã€‚" +[ui_or_search_by_tags] +other = "...或按標įą¤į€čĻŊ" +[ui_select_all] +other = "全選" +[ui_deselect_all] +other = "全不選" + +# Footer text +[footer_all_rights_reserved] +other = "į‰ˆæŦŠæ‰€æœ‰" + +[footer_privacy_policy] +other = "隱į§æ”ŋį­–" + +[footer_hub_button_text] +other = "所有 CNCF įļ˛įĢ™" + +# Post (blog, articles etc.) +[post_byline_by] +other = "äŊœč€…īŧš" +[post_created] +other = "åģēįĢ‹æ–ŧ" +[post_last_mod] +other = "最垌įˇ¨čŧ¯" +[post_edit_this] +other = "įˇ¨čŧ¯æ­¤é éĸ" +[post_create_child_page] +other = "åģēįĢ‹å­é éĸ" +[post_create_issue] +other = "åģēįĢ‹æ–‡äģļå•éĄŒ" +[post_create_project_issue] +other = "åģēįĢ‹å°ˆæĄˆå•éĄŒ" +[post_posts_in] +other = "į™ŧäŊˆæ–ŧ" +[post_reading_time] +other = "åˆ†é˜é–ąčŽ€" + +# Print support +[print_printable_section] +other = "這是這個部分įš„多頁列印æĒĸčĻ–。" +[print_click_to_print] +other = "éģžæ“Šé€™čŖĄåˆ—印" +[print_show_regular] +other = "čŋ”回此頁éĸįš„常čĻæĒĸčĻ–" +[print_entire_section] +other = "列印整個部分" + +# Feedback section +[feedback_title] +other = "回éĨ‹" +[feedback_question] +other = "這個頁éĸ對您有åšĢ劊嗎īŧŸ" +[feedback_answer_yes] +other = "是" +[feedback_answer_no] +other = "åĻ" diff --git a/layouts/_default/content.html b/layouts/_default/content.html index 66f5e6d3a5..85cb48e4b6 100644 --- a/layouts/_default/content.html +++ b/layouts/_default/content.html @@ -17,7 +17,7 @@

{{ .Title }}

{{ end }} {{ .Content }} - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} + {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable)) }} {{ partial "feedback.html" .Site.Params.ui.feedback }}
{{ end }} diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 0e578870eb..7c24eccd35 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -10,7 +10,7 @@

{{ title ( T "ui_search_by_tags" ) }}

{{ range $tags }} - {{ $tagid := printf "tag-%s" .Page.Title }} + {{ $tagid := printf "tag-%s" ( replace .Page.Title " " "-" ) }} {{ end }} @@ -25,10 +25,9 @@

{{ title ( T "ui_search_by_tags" ) }}

{{ $.Scratch.Set "tag_classes" "" }} {{ range .Params.tags }} {{ with . }} - {{ $.Scratch.Add "tag_classes" (printf "tag-%s " .) }} + {{ $.Scratch.Add "tag_classes" (printf "tag-%s " ( replace . " " "-" ) ) }} {{ end }} {{ end }} - {{ $term_identifier := (printf "term-%s" .Params.id) }}

{{ .Title }}

diff --git a/layouts/partials/feedback.html b/layouts/partials/feedback.html index 02a9bef781..d93d8f4fa8 100644 --- a/layouts/partials/feedback.html +++ b/layouts/partials/feedback.html @@ -35,21 +35,18 @@ noButton.disabled = true; }; const sendFeedback = (value) => { - if (typeof ga !== 'function') return; - const args = { - command: 'send', - hitType: 'event', - category: 'Helpful', - action: 'click', - label: window.location.pathname, - value: value - }; - ga(args.command, args.hitType, args.category, args.action, args.label, args.value); + if (typeof gtag !== 'function') return; + gtag('event', 'page_helpful', { + 'event_category': 'Helpful', + 'event_label': window.location.href, + 'value': value + }); }; yesButton.addEventListener('click', () => { yesResponse.classList.add('feedback--response__visible'); disableButtons(); - sendFeedback(1); + {{ $maxValue := .max_value | default 100 -}} + sendFeedback({{ $maxValue }}); }); noButton.addEventListener('click', () => { noResponse.classList.add('feedback--response__visible'); diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index beb00b1974..d3b92335f8 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,107 +1,87 @@ {{ $links := .Site.Params.links }} + \ No newline at end of file diff --git a/layouts/partials/taxonomy_terms_article.html b/layouts/partials/taxonomy_terms_article.html index 13ebfbee3c..297e2dccae 100644 --- a/layouts/partials/taxonomy_terms_article.html +++ b/layouts/partials/taxonomy_terms_article.html @@ -4,7 +4,7 @@
diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000000..3216ff75d6 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,3 @@ +[build.environment] +NODE_VERSION = "18.16.1" +HUGO_VERSION = "0.115.2" diff --git a/package-lock.json b/package-lock.json index 21ff5db54c..861bc9ba03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,108 @@ }, "devDependencies": { "autoprefixer": "^9.8.6", + "hugo-extended": "^0.115.2", + "netlify-cli": "^15.9.0", "postcss-cli": "^7.1.2" } }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -51,6 +150,42 @@ "node": ">= 8" } }, + "node_modules/@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -137,6 +272,26 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -146,6 +301,16 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -187,6 +352,100 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -239,6 +498,37 @@ "url": "https://opencollective.com/browserslist" } }, + "node_modules/careful-downloader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/careful-downloader/-/careful-downloader-3.0.0.tgz", + "integrity": "sha512-5KMIPa0Yoj+2tY6OK9ewdwcPebp+4XS0dMYvvF9/8fkFEfvnEpWmHWYs9JNcZ7RZUvY/v6oPzLpmmTzSIbroSA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "decompress": "^4.2.1", + "fs-extra": "^11.1.1", + "got": "^12.6.0", + "is-path-inside": "^4.0.0", + "tempy": "^3.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/careful-downloader/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -305,6 +595,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, "node_modules/cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -320,76 +622,261 @@ "node": ">=4" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { - "node": ">= 0.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/electron-to-chromium": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", - "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", "dev": true, + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dependency-graph": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", + "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", + "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", @@ -427,6 +914,24 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -452,6 +957,21 @@ "node": ">=8" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "dev": true, + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -481,6 +1001,12 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -502,6 +1028,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -534,12 +1073,61 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -549,6 +1137,104 @@ "node": ">=8" } }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/hugo-extended": { + "version": "0.115.2", + "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.115.2.tgz", + "integrity": "sha512-PCLH9TwexpYTVsrAI8AFV0PJLC4vHsncxTRcwvTYl7atLSWEIySBvO7z5ivx2vAvwzrgnCOVgLllIgJISsYnpg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "careful-downloader": "^3.0.0", + "log-symbols": "^5.1.0", + "read-pkg-up": "^9.1.0" + }, + "bin": { + "hugo": "lib/cli.js", + "hugo-extended": "lib/cli.js" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/hugo-extended/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/hugo-extended/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.1.9", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", @@ -595,6 +1281,12 @@ "node": ">=4" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -613,6 +1305,18 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -652,6 +1356,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -661,25 +1371,82 @@ "node": ">=0.12.0" } }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "engines": { + "node": ">=12" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -692,6 +1459,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -784,11 +1566,56 @@ "node": ">=4" } }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/lunr-languages": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -811,286 +1638,496 @@ "node": ">=8.6" } }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/netlify-cli": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-15.9.0.tgz", + "integrity": "sha512-AqeT+3vb8dWErhVBtso7VjxGdszwaWH9AGnwn8tvyknjxN+qNtlXGb5PxcfI1COaL2BlSphMMGjt/jl7C1NBkQ==", "dev": true, + "hasInstallScript": true, + "hasShrinkwrap": true, "dependencies": { - "p-try": "^2.0.0" + "@bugsnag/js": "7.20.2", + "@fastify/static": "6.10.2", + "@netlify/build": "29.16.1", + "@netlify/build-info": "7.4.1", + "@netlify/config": "20.6.0", + "@netlify/edge-bundler": "8.16.4", + "@netlify/framework-info": "9.8.10", + "@netlify/local-functions-proxy": "1.1.1", + "@netlify/serverless-functions-api": "1.5.1", + "@netlify/zip-it-and-ship-it": "9.13.0", + "@octokit/rest": "19.0.13", + "@skn0tt/lambda-local": "2.0.3", + "ansi-escapes": "6.2.0", + "ansi-styles": "6.2.1", + "ansi-to-html": "0.7.2", + "ascii-table": "0.0.9", + "backoff": "2.5.0", + "better-opn": "3.0.2", + "boxen": "7.1.1", + "chalk": "5.2.0", + "chokidar": "3.5.3", + "ci-info": "3.8.0", + "clean-deep": "3.4.0", + "commander": "10.0.1", + "comment-json": "4.2.3", + "concordance": "5.0.4", + "configstore": "6.0.0", + "content-type": "1.0.5", + "cookie": "0.5.0", + "copy-template-dir": "1.4.0", + "cron-parser": "4.8.1", + "debug": "4.3.4", + "decache": "4.6.2", + "dot-prop": "7.2.0", + "dotenv": "16.0.3", + "env-paths": "3.0.0", + "envinfo": "7.8.1", + "etag": "1.8.1", + "execa": "5.1.1", + "express": "4.18.2", + "express-logging": "1.1.1", + "extract-zip": "2.0.1", + "fastest-levenshtein": "1.0.16", + "fastify": "4.17.0", + "find-up": "6.3.0", + "flush-write-stream": "2.0.0", + "folder-walker": "3.2.0", + "from2-array": "0.0.4", + "fuzzy": "0.1.3", + "get-port": "5.1.1", + "gh-release-fetch": "4.0.3", + "git-repo-info": "2.1.1", + "gitconfiglocal": "2.1.0", + "hasbin": "1.2.3", + "hasha": "5.2.2", + "http-proxy": "1.18.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "5.0.1", + "inquirer": "6.5.2", + "inquirer-autocomplete-prompt": "1.4.0", + "is-docker": "3.0.0", + "is-stream": "3.0.0", + "is-wsl": "2.2.0", + "isexe": "2.0.0", + "jsonwebtoken": "9.0.1", + "jwt-decode": "3.1.2", + "listr": "0.14.3", + "locate-path": "7.2.0", + "lodash": "4.17.21", + "log-symbols": "5.1.0", + "log-update": "5.0.1", + "minimist": "1.2.8", + "multiparty": "4.2.3", + "netlify": "13.1.10", + "netlify-headers-parser": "7.1.2", + "netlify-redirect-parser": "14.1.3", + "netlify-redirector": "0.4.0", + "node-fetch": "2.6.12", + "node-version-alias": "3.4.1", + "ora": "6.3.1", + "p-filter": "3.0.0", + "p-map": "5.5.0", + "p-wait-for": "5.0.2", + "parallel-transform": "1.2.0", + "parse-github-url": "1.0.2", + "parse-gitignore": "2.0.0", + "path-key": "4.0.0", + "prettyjson": "1.2.5", + "pump": "3.0.0", + "raw-body": "2.5.2", + "read-pkg-up": "9.1.0", + "semver": "7.5.4", + "source-map-support": "0.5.21", + "strip-ansi-control-characters": "2.0.0", + "tabtab": "3.0.2", + "tempy": "3.0.0", + "terminal-link": "3.0.0", + "through2-filter": "3.0.0", + "through2-map": "3.0.0", + "to-readable-stream": "3.0.0", + "toml": "3.0.0", + "ulid": "2.3.0", + "unixify": "1.0.0", + "update-notifier": "6.0.2", + "uuid": "9.0.0", + "wait-port": "1.0.4", + "winston": "3.8.2", + "write-file-atomic": "5.0.1" }, - "engines": { - "node": ">=6" + "bin": { + "netlify": "bin/run.mjs", + "ntl": "bin/run.mjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.18.0 || >=16.0.0" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/netlify-cli/node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@babel/highlight": "^7.22.5" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/netlify-cli/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=6.9.0" } }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "node_modules/netlify-cli/node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=0.8.0" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "node_modules/netlify-cli/node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=4" } }, - "node_modules/postcss-cli": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz", - "integrity": "sha512-3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==", + "node_modules/netlify-cli/node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "chokidar": "^3.3.0", - "dependency-graph": "^0.9.0", - "fs-extra": "^9.0.0", - "get-stdin": "^8.0.0", - "globby": "^11.0.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "postcss-reporter": "^6.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "yargs": "^15.0.2" - }, "bin": { - "postcss": "bin/postcss" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "node_modules/netlify-cli/node_modules/@bugsnag/browser": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", + "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", "dev": true, "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "@bugsnag/core": "^7.19.0" } }, - "node_modules/postcss-reporter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", - "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", + "node_modules/netlify-cli/node_modules/@bugsnag/core": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", + "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", "dev": true, "dependencies": { - "chalk": "^2.4.1", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "postcss": "^7.0.7" - }, - "engines": { - "node": ">=6" + "@bugsnag/cuid": "^3.0.0", + "@bugsnag/safe-json-stringify": "^6.0.0", + "error-stack-parser": "^2.0.3", + "iserror": "0.0.2", + "stack-generator": "^2.0.3" } }, - "node_modules/postcss-reporter/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/netlify-cli/node_modules/@bugsnag/cuid": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", + "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@bugsnag/js": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", + "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" - }, + "@bugsnag/browser": "^7.20.2", + "@bugsnag/node": "^7.19.0" + } + }, + "node_modules/netlify-cli/node_modules/@bugsnag/node": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", + "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", + "dev": true, + "dependencies": { + "@bugsnag/core": "^7.19.0", + "byline": "^5.0.0", + "error-stack-parser": "^2.0.2", + "iserror": "^0.0.2", + "pump": "^3.0.0", + "stack-generator": "^2.0.3" + } + }, + "node_modules/netlify-cli/node_modules/@bugsnag/safe-json-stringify": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", + "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=0.1.90" } }, - "node_modules/postcss-reporter/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/netlify-cli/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/postcss-reporter/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/netlify-cli/node_modules/@dabh/diagnostics": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", + "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" } }, - "node_modules/postcss-reporter/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "node_modules/netlify-cli/node_modules/@dependents/detective-less": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.0.0.tgz", + "integrity": "sha512-0udn+HKjGUzTX4Z+0vXdEJVsO28gxy5QxWjeChK4ZH+bwdvIXLuztiGZk8wLyAG1+LNZ5haVHKr5j1XfJnAkyQ==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.0" + }, + "engines": { + "node": ">=14" + } }, - "node_modules/postcss-reporter/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/netlify-cli/node_modules/@fastify/accept-negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", + "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=14" } }, - "node_modules/postcss-reporter/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", + "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "fast-uri": "^2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "node_modules/netlify-cli/node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "node_modules/netlify-cli/node_modules/@fastify/deepmerge": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", + "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@fastify/error": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", + "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@fastify/fast-json-stringify-compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", + "dev": true, + "dependencies": { + "fast-json-stringify": "^5.7.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/send": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.0.1.tgz", + "integrity": "sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==", + "dev": true, + "dependencies": { + "@lukeed/ms": "^2.0.1", + "escape-html": "~1.0.3", + "fast-decode-uri-component": "^1.0.1", + "http-errors": "2.0.0", + "mime": "^3.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/send/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/static": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.10.2.tgz", + "integrity": "sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ==", + "dev": true, + "dependencies": { + "@fastify/accept-negotiator": "^1.0.0", + "@fastify/send": "^2.0.0", + "content-disposition": "^0.5.3", + "fastify-plugin": "^4.0.0", + "glob": "^8.0.1", + "p-limit": "^3.1.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -1105,67 +2142,63 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, + ], "dependencies": { - "pify": "^2.3.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -1180,764 +2213,29561 @@ "type": "consulting", "url": "https://feross.org/support" } - ], + ] + }, + "node_modules/netlify-cli/node_modules/@fastify/static/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "dependencies": { - "queue-microtask": "^1.2.2" + "safe-buffer": "~5.2.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "node_modules/netlify-cli/node_modules/@grpc/grpc-js": { + "version": "1.8.17", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.17.tgz", + "integrity": "sha512-DGuSbtMFbaRsyffMf+VEkVu8HkSXEUfO3UyGJNtqxW9ABdtTIA+2UXAJpwbJS+xfQxuwqLUeELmL6FuZkOqPxw==", + "dev": true, + "dependencies": { + "@grpc/proto-loader": "^0.7.0", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/netlify-cli/node_modules/@grpc/proto-loader": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.7.tgz", + "integrity": "sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==", "dev": true, + "dependencies": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^7.0.0", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/netlify-cli/node_modules/@honeycombio/opentelemetry-node": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.4.0.tgz", + "integrity": "sha512-6PFX8FGW7uA7vQ3mxNIoN36rH9Zx5kXh4kKP9zu28nynyWyy9JE3l8PNJYd9FS2L/d88ZUpQAiQ1pROaANd5MA==", "dev": true, + "dependencies": { + "@grpc/grpc-js": "^1.7.3", + "@opentelemetry/api": "^1.4.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "^0.36.1", + "@opentelemetry/exporter-metrics-otlp-proto": "^0.36.1", + "@opentelemetry/exporter-trace-otlp-grpc": "^0.36.1", + "@opentelemetry/exporter-trace-otlp-proto": "^0.36.1", + "@opentelemetry/resources": "^1.10.1", + "@opentelemetry/sdk-metrics": "^1.10.1", + "@opentelemetry/sdk-node": "^0.36.1", + "@opentelemetry/sdk-trace-base": "^1.10.1", + "axios": "^1.1.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "node_modules/netlify-cli/node_modules/@humanwhocodes/momoa": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", + "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", + "dev": true, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/netlify-cli/node_modules/@import-maps/resolve": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", + "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", "dev": true }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/netlify-cli/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@types/yargs-parser": "*" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=7.0.0" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/netlify-cli/node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "node_modules/netlify-cli/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/netlify-cli/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/netlify-cli/node_modules/@lukeed/ms": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", + "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/netlify-cli/node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" }, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/netlify-cli/node_modules/@netlify/binary-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", + "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/netlify-cli/node_modules/@netlify/build": { + "version": "29.16.1", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.16.1.tgz", + "integrity": "sha512-1D3l0NiCVEFF5aU2prVMP8MQr2Bu+UuyYe69Z7k/7GjFIx4Q1sLgewTf4p+al3LhSLT5fs52cbIec9pT9HSjyQ==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "dependencies": { + "@bugsnag/js": "^7.0.0", + "@honeycombio/opentelemetry-node": "^0.4.0", + "@netlify/cache-utils": "^5.1.5", + "@netlify/config": "^20.6.0", + "@netlify/edge-bundler": "8.16.4", + "@netlify/framework-info": "^9.8.10", + "@netlify/functions-utils": "^5.2.18", + "@netlify/git-utils": "^5.1.1", + "@netlify/plugins-list": "^6.68.0", + "@netlify/run-utils": "^5.1.1", + "@netlify/zip-it-and-ship-it": "9.13.0", + "@opentelemetry/api": "^1.4.1", + "@sindresorhus/slugify": "^2.0.0", + "ansi-escapes": "^6.0.0", + "chalk": "^5.0.0", + "clean-stack": "^4.0.0", + "execa": "^6.0.0", + "fdir": "^6.0.1", + "figures": "^5.0.0", + "filter-obj": "^5.0.0", + "got": "^12.0.0", + "hot-shots": "10.0.0", + "indent-string": "^5.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "keep-func-props": "^4.0.0", + "locate-path": "^7.0.0", + "log-process-errors": "^8.0.0", + "map-obj": "^5.0.0", + "memoize-one": "^6.0.0", + "os-name": "^5.0.0", + "p-event": "^5.0.0", + "p-every": "^2.0.0", + "p-filter": "^3.0.0", + "p-locate": "^6.0.0", + "p-reduce": "^3.0.0", + "path-exists": "^5.0.0", + "path-type": "^5.0.0", + "pkg-dir": "^7.0.0", + "pretty-ms": "^8.0.0", + "ps-list": "^8.0.0", + "read-pkg-up": "^9.0.0", + "readdirp": "^3.4.0", + "resolve": "^2.0.0-next.1", + "rfdc": "^1.3.0", + "safe-json-stringify": "^1.2.0", + "semver": "^7.3.8", + "string-width": "^5.0.0", + "strip-ansi": "^7.0.0", + "supports-color": "^9.0.0", + "terminal-link": "^3.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.0", + "uuid": "^9.0.0", + "yargs": "^17.6.0" + }, + "bin": { + "netlify-build": "bin.js" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/netlify-cli/node_modules/@netlify/build-info": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.4.1.tgz", + "integrity": "sha512-JucExQCHJCk8smscd+fzU2z0MM7vyw4XJJWREq9Im5i8nPy56mjG0oeODk7DB7pQK6X9wyUViwVRPF8ftwuq9Q==", "dev": true, - "requires": { - "color-convert": "^2.0.1" + "dependencies": { + "@bugsnag/js": "^7.20.0", + "@netlify/framework-info": "^9.8.10", + "dot-prop": "^7.2.0", + "find-up": "^6.3.0", + "minimatch": "^9.0.0", + "read-pkg": "^7.1.0", + "semver": "^7.3.8", + "toml": "^3.0.0", + "yaml": "^2.1.3", + "yargs": "^17.6.0" + }, + "bin": { + "build-info": "bin.js" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/netlify-cli/node_modules/@netlify/build-info/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", "dev": true, - "requires": { - "fill-range": "^7.0.1" + "engines": { + "node": ">= 14" } }, - "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "engines": { + "node": ">=14.16" }, - "dependencies": { - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - } + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, - "requires": { - "callsites": "^2.0.0" + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, - "requires": { - "caller-callsite": "^2.0.0" + "engines": { + "node": ">=14.16" } }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } }, - "caniuse-lite": { - "version": "1.0.30001282", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", - "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, - "requires": { - "color-name": "~1.1.4" + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "engines": { + "node": ">=12.20.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "electron-to-chromium": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", - "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "emoji-regex": { + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/normalize-url": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "engines": { + "node": ">=12.20" } }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, - "requires": { - "reusify": "^1.0.4" + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/parse-ms": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", + "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "optional": true + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-stdin": { + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/pretty-ms": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", + "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", "dev": true, - "requires": { - "is-glob": "^4.0.1" + "dependencies": { + "parse-ms": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/build/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "node_modules/netlify-cli/node_modules/@netlify/cache-utils": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-5.1.5.tgz", + "integrity": "sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg==", "dev": true, - "requires": { - "import-from": "^2.1.0" + "dependencies": { + "cpy": "^9.0.0", + "get-stream": "^6.0.0", + "globby": "^13.0.0", + "junk": "^4.0.0", + "locate-path": "^7.0.0", + "move-file": "^3.0.0", + "path-exists": "^5.0.0", + "readdirp": "^3.4.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" } }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "requires": { - "resolve-from": "^3.0.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/cache-utils/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/netlify-cli/node_modules/@netlify/config": { + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-20.6.0.tgz", + "integrity": "sha512-YPWvkq7hYgYLVsbEPbGq7aZQh59D2h5NeIwgRZxabsheIMriyxpDZVVajK1+z1U0Z2DsJxn+XSOJSNSSKUIk4w==", "dev": true, - "requires": { - "binary-extensions": "^2.0.0" + "dependencies": { + "chalk": "^5.0.0", + "cron-parser": "^4.1.0", + "deepmerge": "^4.2.2", + "dot-prop": "^7.0.0", + "execa": "^6.0.0", + "fast-safe-stringify": "^2.0.7", + "figures": "^5.0.0", + "filter-obj": "^5.0.0", + "find-up": "^6.0.0", + "indent-string": "^5.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "map-obj": "^5.0.0", + "netlify": "^13.1.10", + "netlify-headers-parser": "^7.1.2", + "netlify-redirect-parser": "^14.1.3", + "node-fetch": "^3.3.1", + "omit.js": "^2.0.2", + "p-locate": "^6.0.0", + "path-type": "^5.0.0", + "toml": "^3.0.0", + "tomlify-j0.4": "^3.0.0", + "validate-npm-package-name": "^4.0.0", + "yargs": "^17.6.0" + }, + "bin": { + "netlify-config": "bin.js" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "engines": { + "node": ">=12.20.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "locate-path": { + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/path-type": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "requires": { - "p-locate": "^4.1.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "node_modules/netlify-cli/node_modules/@netlify/config/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "requires": { - "chalk": "^2.0.1" + "engines": { + "node": ">=12.20" }, - "dependencies": { - "ansi-styles": { + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler": { + "version": "8.16.4", + "resolved": "https://registry.npmjs.org/@netlify/edge-bundler/-/edge-bundler-8.16.4.tgz", + "integrity": "sha512-5sYymRzZLzdSp1AtCcuEdjeQ/QcJ6LORERU5Nr48MY5Y9GKEHC7uIeQFwLT/YMgnDRd4FqPv+g8RBSu3HP9Czg==", + "dev": true, + "dependencies": { + "@import-maps/resolve": "^1.0.1", + "ajv": "^8.11.2", + "ajv-errors": "^3.0.0", + "better-ajv-errors": "^1.2.0", + "common-path-prefix": "^3.0.0", + "env-paths": "^3.0.0", + "execa": "^6.0.0", + "find-up": "^6.3.0", + "get-port": "^6.1.2", + "glob-to-regexp": "^0.4.1", + "is-path-inside": "^4.0.0", + "jsonc-parser": "^3.2.0", + "node-fetch": "^3.1.1", + "node-stream-zip": "^1.15.0", + "p-retry": "^5.1.1", + "p-wait-for": "^4.1.0", + "path-key": "^4.0.0", + "regexp-tree": "^0.1.24", + "semver": "^7.3.8", + "tmp-promise": "^3.0.3", + "uuid": "^9.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "dev": true, + "peerDependencies": { + "ajv": "^8.0.1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/p-wait-for": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", + "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", + "dev": true, + "dependencies": { + "p-timeout": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/edge-bundler/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz", + "integrity": "sha512-C3xpwdT2xw6SnSb+hLQoxjtikAKiz6BjQjzlIaysHDpGbmIcmUHZ/X+dyLtCqAvf15WNK5GSBZYOlpgcOE0WZA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@netlify/esbuild-android-64": "0.14.39", + "@netlify/esbuild-android-arm64": "0.14.39", + "@netlify/esbuild-darwin-64": "0.14.39", + "@netlify/esbuild-darwin-arm64": "0.14.39", + "@netlify/esbuild-freebsd-64": "0.14.39", + "@netlify/esbuild-freebsd-arm64": "0.14.39", + "@netlify/esbuild-linux-32": "0.14.39", + "@netlify/esbuild-linux-64": "0.14.39", + "@netlify/esbuild-linux-arm": "0.14.39", + "@netlify/esbuild-linux-arm64": "0.14.39", + "@netlify/esbuild-linux-mips64le": "0.14.39", + "@netlify/esbuild-linux-ppc64le": "0.14.39", + "@netlify/esbuild-linux-riscv64": "0.14.39", + "@netlify/esbuild-linux-s390x": "0.14.39", + "@netlify/esbuild-netbsd-64": "0.14.39", + "@netlify/esbuild-openbsd-64": "0.14.39", + "@netlify/esbuild-sunos-64": "0.14.39", + "@netlify/esbuild-windows-32": "0.14.39", + "@netlify/esbuild-windows-64": "0.14.39", + "@netlify/esbuild-windows-arm64": "0.14.39" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-android-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", + "integrity": "sha512-azq+lsvjRsKLap8ubIwSJXGyknUACqYu5h98Fvyoh40Qk4QXIVKl16JIJ4s+B7jy2k9qblEc5c4nxdDA3aGbVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-android-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", + "integrity": "sha512-WhIP7ePq4qMC1sxoaeB9SsJqSW6uzW7XDj/IuWl1l9r94nwxywU1sYdVLaF2mZr15njviazYjVr8x1d+ipwL3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-darwin-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", + "integrity": "sha512-eF4GvLYiDxtcyjFT55+h+8c8A2HltjeMezCqkt3AQSgOdu1nhlvwbBhIdg2dyM6gKEaEm5hBtTbicEDSwsLodA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-darwin-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", + "integrity": "sha512-b7rtnX/VtYwNbUCxs3eulrCWJ+u2YvqDcXiIV1ka+od+N0fTx+4RrVkVp1lha9L0wEJYK9J7UWZOMLMyd1ynRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-freebsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", + "integrity": "sha512-XtusxDJt2hUKUdggbTFolMx0kJL2zEa4STI7YwpB+ukEWoW5rODZjiLZbqqYLcjDH8k4YwHaMxs103L8eButEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-freebsd-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", + "integrity": "sha512-A9XZKai+k6kfndCtN6Dh2usT28V0+OGxzFdZsANONPQiEUTrGZCgwcHWiVlVn7SeAwPR1tKZreTnvrfj8cj7hA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-32": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", + "integrity": "sha512-ZQnqk/82YRvINY+aF+LlGfRZ19c5mH0jaxsO046GpIOPx6PcXHG8JJ2lg+vLJVe4zFPohxzabcYpwFuT4cg/GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", + "integrity": "sha512-IQtswVw7GAKNX/3yV390wSfSXvMWy0d5cw8csAffwBk9gupftY2lzepK4Cn6uD/aqLt3Iku33FbHop/2nPGfQA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-arm": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", + "integrity": "sha512-QdOzQniOed0Bz1cTC9TMMwvtAqKayYv66H4edJlbvElC81yJZF/c9XhmYWJ6P5g4nkChZubQ5RcQwTLmrFGexg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", + "integrity": "sha512-4Jie4QV6pWWuGN7TAshNMGbdTA9+VbRkv3rPIxhgK5gBfmsAV1yRKsumE4Y77J0AZNRiOriyoec4zc1qkmI3zg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-mips64le": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", + "integrity": "sha512-Htozxr95tw4tSd86YNbCLs1eoYQzNu/cHpzFIkuJoztZueUhl8XpRvBdob7n3kEjW1gitLWAIn8XUwSt+aJ1Tg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-ppc64le": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", + "integrity": "sha512-tFy0ufWIdjeuk1rPHee00TZlhr9OSF00Ufb4ROFyt2ArKuMSkWRJuDgx6MtZcAnCIN4cybo/xWl3MKTM+scnww==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-riscv64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", + "integrity": "sha512-ZzfKvwIxL7wQnYbVFpyNW0wotnLoKageUEM57RbjekesJoNQnqUR6Usm+LDZoB8iRsI58VX1IxnstP0cX8vOHw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-linux-s390x": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", + "integrity": "sha512-yjC0mFwnuMRoh0WcF0h71MF71ytZBFEQQTRdgiGT0+gbC4UApBqnTkJdLx32RscBKi9skbMChiJ748hDJou6FA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-netbsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", + "integrity": "sha512-mIq4znOoz3YfTVdv3sIWfR4Zx5JgMnT4srlhC5KYVHibhxvyDdin5txldYXmR4Zv4dZd6DSuWFsn441aUegHeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-openbsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", + "integrity": "sha512-+t6QdzJCngH19hV7ClpFAeFDI2ko/HNcFbiNwaXTMVLB3hWi1sJtn+fzZck5HfzN4qsajAVqZq4nwX69SSt25A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-sunos-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", + "integrity": "sha512-HLfXG6i2p3wyyyWHeeP4ShGDJ1zRMnf9YLJLe2ezv2KqvcKw/Un/m/FBuDW1p13oSUO7ShISMzgc1dw1GGBEOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-32": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", + "integrity": "sha512-ZpSQcKbVSCU3ln7mHpsL/5dWsUqCNdTnC5YAArnaOwdrlIunrsbo5j4MOZRRcGExb2uvTc/rb+D3mlGb8j1rkA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", + "integrity": "sha512-I3gCdO8+6IDhT4Y1ZmV4o2Gg0oELv7N4kCcE4kqclz10fWHNjf19HQNHyBJe0AWnFV5ZfT154VVD31dqgwpgFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/esbuild-windows-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", + "integrity": "sha512-WX52W8U1lsfWcz6NWoSpDs57lgiiMHN23seq8G2bvxzGS/tvYD3dxVLLW5UPoKSnFDyVQT7b6Zkt6AkBten1yQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info": { + "version": "9.8.10", + "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-9.8.10.tgz", + "integrity": "sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg==", + "dev": true, + "dependencies": { + "ajv": "^8.12.0", + "filter-obj": "^5.0.0", + "find-up": "^6.3.0", + "is-plain-obj": "^4.0.0", + "locate-path": "^7.0.0", + "p-filter": "^3.0.0", + "p-locate": "^6.0.0", + "process": "^0.11.10", + "read-pkg-up": "^9.0.0", + "semver": "^7.3.8" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/framework-info/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/functions-utils": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.18.tgz", + "integrity": "sha512-da/DvWJw/yE9VBPuBkqPH0E/G3lsnxugqZqkwmA4DnPkdN/qythIBPYznw4un1tVmA5ekZRP3var8bZDZ0DPNQ==", + "dev": true, + "dependencies": { + "@netlify/zip-it-and-ship-it": "9.13.0", + "cpy": "^9.0.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/functions-utils/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-5.1.1.tgz", + "integrity": "sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw==", + "dev": true, + "dependencies": { + "execa": "^6.0.0", + "map-obj": "^5.0.0", + "micromatch": "^4.0.2", + "moize": "^6.1.3", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/git-utils/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz", + "integrity": "sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw==", + "dev": true, + "optionalDependencies": { + "@netlify/local-functions-proxy-darwin-arm64": "1.1.1", + "@netlify/local-functions-proxy-darwin-x64": "1.1.1", + "@netlify/local-functions-proxy-freebsd-arm64": "1.1.1", + "@netlify/local-functions-proxy-freebsd-x64": "1.1.1", + "@netlify/local-functions-proxy-linux-arm": "1.1.1", + "@netlify/local-functions-proxy-linux-arm64": "1.1.1", + "@netlify/local-functions-proxy-linux-ia32": "1.1.1", + "@netlify/local-functions-proxy-linux-ppc64": "1.1.1", + "@netlify/local-functions-proxy-linux-x64": "1.1.1", + "@netlify/local-functions-proxy-openbsd-x64": "1.1.1", + "@netlify/local-functions-proxy-win32-ia32": "1.1.1", + "@netlify/local-functions-proxy-win32-x64": "1.1.1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz", + "integrity": "sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz", + "integrity": "sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz", + "integrity": "sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz", + "integrity": "sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ia32": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz", + "integrity": "sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-ppc64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz", + "integrity": "sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-linux-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz", + "integrity": "sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-openbsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz", + "integrity": "sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "bin": { + "local-functions-proxy": "bin/local-functions-proxy" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-ia32": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz", + "integrity": "sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "bin": { + "local-functions-proxy.exe": "bin/local-functions-proxy.exe" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/local-functions-proxy-win32-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz", + "integrity": "sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "bin": { + "local-functions-proxy.exe": "bin/local-functions-proxy.exe" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/open-api": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.19.1.tgz", + "integrity": "sha512-RkucRf8o0vYhCDXCRHWU/EdhkVE3JhkqKmZFvMW6qCPD206GV2Cfo9JGSKb0NdN+nmHSNaYmd+9dvT6I9MP4pw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@netlify/plugins-list": { + "version": "6.68.0", + "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.68.0.tgz", + "integrity": "sha512-OIW7oDTXFKEyzG2DQr6ndLWjYfNnSZAKbldD2dquH3V8Q6DrbGk8Dhv6LkuGOJBgrKS25SyabYOyHIVASQjrFw==", + "dev": true, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-5.1.1.tgz", + "integrity": "sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A==", + "dev": true, + "dependencies": { + "execa": "^6.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/run-utils/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/serverless-functions-api": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.5.1.tgz", + "integrity": "sha512-c8RjIu+fkpfOGLaW0Z0iFG39GUK7sCa6M3Qy3fqouMpT00TaiheiyssnnDZGSLkNp4o+UtbRnITB1zuwDeHMLw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.13.0.tgz", + "integrity": "sha512-IK6FvXFtRuEA2sZwSmNwkfZSOA1M9tTIHLqvBaHz7h3G0qquZ6p7DMMH7UkmbkPyqp6dZTfwhZ4Stc8A6UjzJw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.22.5", + "@netlify/binary-info": "^1.0.0", + "@netlify/esbuild": "0.14.39", + "@netlify/serverless-functions-api": "^1.5.1", + "@vercel/nft": "^0.22.0", + "archiver": "^5.3.0", + "common-path-prefix": "^3.0.0", + "cp-file": "^10.0.0", + "es-module-lexer": "^1.0.0", + "execa": "^6.0.0", + "filter-obj": "^5.0.0", + "find-up": "^6.0.0", + "glob": "^8.0.3", + "is-builtin-module": "^3.1.0", + "is-path-inside": "^4.0.0", + "junk": "^4.0.0", + "locate-path": "^7.0.0", + "merge-options": "^3.0.4", + "minimatch": "^9.0.0", + "normalize-path": "^3.0.0", + "p-map": "^5.0.0", + "path-exists": "^5.0.0", + "precinct": "^11.0.0", + "require-package-name": "^2.0.1", + "resolve": "^2.0.0-next.1", + "semver": "^7.3.8", + "tmp-promise": "^3.0.2", + "toml": "^3.0.0", + "unixify": "^1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "zip-it-and-ship-it": "dist/bin.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@netlify/zip-it-and-ship-it/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/auth-token": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", + "dev": true, + "dependencies": { + "@octokit/types": "^7.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/core": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz", + "integrity": "sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==", + "dev": true, + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/endpoint": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", + "dev": true, + "dependencies": { + "@octokit/types": "^7.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/graphql": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", + "dev": true, + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^7.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/openapi-types": { + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", + "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "dev": true, + "dependencies": { + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz", + "integrity": "sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==", + "dev": true, + "dependencies": { + "@octokit/types": "^9.2.3", + "deprecation": "^2.3.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/request": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", + "dev": true, + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/request-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", + "dev": true, + "dependencies": { + "@octokit/types": "^7.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/rest": { + "version": "19.0.13", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", + "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", + "dev": true, + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/netlify-cli/node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@octokit/types": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", + "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^13.11.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/api": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/context-async-hooks": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.1.tgz", + "integrity": "sha512-6CC9sWOZDkUkKrAR957fmxXXlaK3uiBu5xVnuNEQ7hI7VqkUC/r0mNYIql0ouRInLz5o0HwmDuga1eXgQU7KNQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.1.tgz", + "integrity": "sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-jaeger": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.10.1.tgz", + "integrity": "sha512-bZIoSD6M7uxO19HtRJCAceAahX56LUmj5N/XQFHmoi3iFqA2JfR7bqsyHQCYbgINdiee155UejaqkNpgvjV7fw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1", + "jaeger-client": "^3.15.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-grpc": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.36.1.tgz", + "integrity": "sha512-yQPHny0Y3HIE1BSqbN82MoqqbbJeLINjL7Qf3kJwv1zt5YLUhYbn3FkqHQWS0YWpAvdjK0/OcN40SjEbVz2HRA==", + "dev": true, + "dependencies": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-http": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.36.1.tgz", + "integrity": "sha512-JcpEBwtBpNhVvmCLH3zjTPDcOld2AeI5rNglv2JrB16QCxQ5pwsOgzw7mPe/UR4u/53Ij7LIjFTOCeyVto/6aA==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-metrics-otlp-proto": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.36.1.tgz", + "integrity": "sha512-dKJRKvIiyupuZJOVCzW9wNfsK6RxkELnzCSJHzFoIwhGRXSYpbWyYrfHj4ZJZWYZiQSJ7+I8BFUa4aSkBgnO0w==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-proto-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-grpc": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.36.1.tgz", + "integrity": "sha512-U2HdWvQho2VkeSAcAhkZ2wjfUb/1SKQixo5x6LNBF17ES4QYuh5+BagYxfN5FP4dbLnjZpTtFk5lj+97lfNLEw==", + "dev": true, + "dependencies": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-http": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.1.tgz", + "integrity": "sha512-q/jKlfuKiHqltDzgzgEvXkoEJ/EyVSIAZhfiaoyBeQ49UhHCPvNTH36/hSwbGSEhKeX98WxXZK4NB/S3sUs8ig==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-trace-otlp-proto": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.36.1.tgz", + "integrity": "sha512-pNfrto7amygyyhmL4Kf96wuepROEecBYXSrtoXIVb1aUhUqjWLsA3/6DR3unB5EfSRA1Oq1Z9bqHfNuKqGfPNw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-proto-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/exporter-zipkin": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.10.1.tgz", + "integrity": "sha512-8gF8MjcFf6IhQ7vm6W4tPYtu/vQswYVzpYvk3pUSaX9BMGrwgjeXg+LpuRtaxGoiGd08/g7JjZ4sWLUaELnzWw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.1.tgz", + "integrity": "sha512-fpjPwLafJIjgxY5qx7Ly74AYmRCd9spC6/jCxvEgGheg1YT4+NkfVnrfllxLRgc9wQNhDj7Y0Knp8RcmXLLVfA==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-grpc-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.36.1.tgz", + "integrity": "sha512-71TdQ3Z0D2Trq8rc2UMvky7tmIpg8kVPUhdYH3p0tNsTmbx6GDpEBOpjp2/zCFvQ0SZFVfHH2Oj2OZxZiz+FNQ==", + "dev": true, + "dependencies": { + "@grpc/grpc-js": "^1.7.1", + "@grpc/proto-loader": "^0.7.3", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-proto-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.36.1.tgz", + "integrity": "sha512-9ErknJ5fS7r2NxEFeca93H+pGWnCjZCUWsz6Stcj5/z2rgsiZGHXLz3fQoUGQz+iXjiXKkks9wxTCRgWOW+Yiw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "protobufjs": "^7.1.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/otlp-transformer": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.1.tgz", + "integrity": "sha512-d2MomkVHBHwfsmNz6E60s/sm7gtpSjFwDzkFLm9brVq//VXzEhaEyfYSeTabdUs4BmrzhqTIogHWlcd6cOiL+w==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/propagator-b3": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.10.1.tgz", + "integrity": "sha512-YrWqU93PH8RyCmqGhtDZgyk64D+cp8XIjQsLhEgOPcOsxvxSSGXnGt46rx9Z8+WdIbJgj13Q4nV/xuh36k+O+A==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/propagator-jaeger": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.1.tgz", + "integrity": "sha512-qvwFfDPoBw2YQW/OsGHdLdD/rqNRGBRLz5UZR/akO21C4qwIK+lQcXbSi5ve0p2eLHnFshhNFqDmgQclOYBcmg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/resources": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.1.tgz", + "integrity": "sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-metrics": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.1.tgz", + "integrity": "sha512-ARAD4e6lZhLwstwW+1HG2Q3XuYFA/t8vn10KK/mA4em1pZYKFn64c45RJZJcntxWp4wOZRbp9iL1RXsg7zIjow==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "lodash.merge": "4.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.36.1.tgz", + "integrity": "sha512-7cRIxls3Ccg6HmzSu30R5upi0yHEizab2rm2rATrAyFV3JJ/ISA7cojmwKwYG8p4rkPNNPLOwCxI3vlLJrBnKA==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-jaeger": "1.10.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.36.1", + "@opentelemetry/exporter-trace-otlp-http": "0.36.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.36.1", + "@opentelemetry/exporter-zipkin": "1.10.1", + "@opentelemetry/instrumentation": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/sdk-trace-node": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/@opentelemetry/instrumentation": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.36.1.tgz", + "integrity": "sha512-gtYErugMEF5NXVacmuE+tHFBiyB82YIiO5l8iZX9/4R4TDV8uCWdrLW5QZMqgTzPhiyOG9AITFdqhwIZMw/5lA==", + "dev": true, + "dependencies": { + "require-in-the-middle": "^6.0.0", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/require-in-the-middle": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", + "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-node/node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz", + "integrity": "sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/sdk-trace-node": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.1.tgz", + "integrity": "sha512-/y+s1j8rPTaKnPnbrsbYv3ygTb4hjx/1H32zqobFr85cvWX+Tt1RWmcZ51TaPAfq5uJobGFhhLh6ADI2RDvk5Q==", + "dev": true, + "dependencies": { + "@opentelemetry/context-async-hooks": "1.10.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/propagator-b3": "1.10.1", + "@opentelemetry/propagator-jaeger": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.5.0" + } + }, + "node_modules/netlify-cli/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz", + "integrity": "sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/netlify-cli/node_modules/@pnpm/network.ca-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", + "integrity": "sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA==", + "dev": true, + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/netlify-cli/node_modules/@pnpm/npm-conf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz", + "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==", + "dev": true, + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dev": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/netlify-cli/node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "dependencies": { + "any-observable": "^0.3.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/@sindresorhus/slugify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.1.1.tgz", + "integrity": "sha512-XokPHZ+q6FtQGEi1hnfvARVJJVPEhwHQTPHPPuNHaN6zcHjzYNynhhHMopa1wNPqLAFOwpsbintunEqWecXJMg==", + "dev": true, + "dependencies": { + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@sindresorhus/slugify/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz", + "integrity": "sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "lodash.deburr": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@skn0tt/lambda-local": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@skn0tt/lambda-local/-/lambda-local-2.0.3.tgz", + "integrity": "sha512-7WZuCWSHeWC9Fh2FTT7lAT6yL5vDZUPxCZ51gIDdCc631CXmEJL/r7t2WMubP2CPuuRA+EnDSJrzKckwY4cz8g==", + "dev": true, + "dependencies": { + "commander": "^9.4.0", + "dotenv": "^16.0.2", + "winston": "^3.8.2" + }, + "bin": { + "lambda-local": "build/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/@skn0tt/lambda-local/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/netlify-cli/node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/netlify-cli/node_modules/@types/node": { + "version": "16.11.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", + "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/netlify-cli/node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/netlify-cli/node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/netlify-cli/node_modules/@vercel/nft": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.1.tgz", + "integrity": "sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==", + "dev": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.5", + "acorn": "^8.6.0", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0", + "rollup-pluginutils": "^2.8.2" + }, + "bin": { + "nft": "out/cli.js" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/archive-type": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz", + "integrity": "sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==", + "dev": true, + "dependencies": { + "file-type": "^18.5.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-9.0.1.tgz", + "integrity": "sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^7.0.0", + "@xhmikosr/decompress-tarbz2": "^7.0.0", + "@xhmikosr/decompress-targz": "^7.0.0", + "@xhmikosr/decompress-unzip": "^6.0.0", + "graceful-fs": "^4.2.11", + "make-dir": "^4.0.0", + "strip-dirs": "^3.0.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz", + "integrity": "sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw==", + "dev": true, + "dependencies": { + "file-type": "^18.5.0", + "is-stream": "^3.0.0", + "tar-stream": "^3.1.4" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tar/node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-tarbz2": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz", + "integrity": "sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^7.0.0", + "file-type": "^18.5.0", + "is-stream": "^3.0.0", + "seek-bzip": "^1.0.6", + "unbzip2-stream": "^1.4.3" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-targz": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz", + "integrity": "sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^7.0.0", + "file-type": "^18.5.0", + "is-stream": "^3.0.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress-unzip": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz", + "integrity": "sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg==", + "dev": true, + "dependencies": { + "file-type": "^18.5.0", + "get-stream": "^6.0.1", + "yauzl": "^2.10.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/decompress/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-13.0.1.tgz", + "integrity": "sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w==", + "dev": true, + "dependencies": { + "@xhmikosr/archive-type": "^6.0.1", + "@xhmikosr/decompress": "^9.0.1", + "content-disposition": "^0.5.4", + "ext-name": "^5.0.0", + "file-type": "^18.5.0", + "filenamify": "^5.1.1", + "get-stream": "^6.0.1", + "got": "^12.6.1", + "merge-options": "^3.0.4", + "p-event": "^5.0.1" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filename-reserved-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", + "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/filenamify": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", + "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^3.0.0", + "strip-outer": "^2.0.0", + "trim-repeated": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/strip-outer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", + "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/@xhmikosr/downloader/node_modules/trim-repeated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", + "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/netlify-cli/node_modules/abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/netlify-cli/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/netlify-cli/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/netlify-cli/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/netlify-cli/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/netlify-cli/node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/all-node-versions": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-11.3.0.tgz", + "integrity": "sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==", + "dev": true, + "dependencies": { + "fetch-node-website": "^7.3.0", + "filter-obj": "^5.1.0", + "get-stream": "^6.0.0", + "global-cache-dir": "^4.3.1", + "is-plain-obj": "^4.1.0", + "path-exists": "^5.0.0", + "semver": "^7.3.7", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/all-node-versions/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/netlify-cli/node_modules/ansi-color": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", + "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/netlify-cli/node_modules/ansi-escapes": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "dev": true, + "dependencies": { + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/ansi-to-html": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", + "integrity": "sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g==", + "dev": true, + "dependencies": { + "entities": "^2.2.0" + }, + "bin": { + "ansi-to-html": "bin/ansi-to-html" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/netlify-cli/node_modules/ansi-to-html/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/archiver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", + "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.0", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/netlify-cli/node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/ascii-table": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", + "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/ast-module-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", + "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/netlify-cli/node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/netlify-cli/node_modules/avvio": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", + "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "debug": "^4.0.0", + "fastq": "^1.6.1" + } + }, + "node_modules/netlify-cli/node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/netlify-cli/node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "dev": true, + "dependencies": { + "precond": "0.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", + "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@humanwhocodes/momoa": "^2.0.2", + "chalk": "^4.1.2", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0 < 4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "ajv": "4.11.8 - 8" + } + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/better-ajv-errors/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/netlify-cli/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/netlify-cli/node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/netlify-cli/node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/body-parser/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/boxen/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/netlify-cli/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/netlify-cli/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/netlify-cli/node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/bufrw": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", + "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", + "dev": true, + "dependencies": { + "ansi-color": "^0.2.1", + "error": "^7.0.0", + "hexer": "^1.5.0", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/netlify-cli/node_modules/builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/builtins": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.0.tgz", + "integrity": "sha512-aizhtbxgT1Udg0Fj6GssXshAVK+nxbtCV+1OtTrMNy67jffDFBY6CUBAkhO4owbleAx6fdbnWdpsmmcXydbzNw==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/netlify-cli/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/netlify-cli/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/clean-deep": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz", + "integrity": "sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==", + "dev": true, + "dependencies": { + "lodash.isempty": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.transform": "^4.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "dev": true, + "dependencies": { + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/netlify-cli/node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/netlify-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/netlify-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/color-string": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", + "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/netlify-cli/node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/netlify-cli/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/netlify-cli/node_modules/colors-option": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-3.0.0.tgz", + "integrity": "sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "filter-obj": "^3.0.0", + "is-plain-obj": "^4.0.0", + "jest-validate": "^27.3.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/colors-option/node_modules/filter-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", + "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dev": true, + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/netlify-cli/node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/comment-json/node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/netlify-cli/node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/netlify-cli/node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/netlify-cli/node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dev": true, + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/configstore/node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/netlify-cli/node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz", + "integrity": "sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "graceful-fs": "^4.1.3", + "maxstache": "^1.0.0", + "maxstache-stream": "^1.0.0", + "mkdirp": "^0.5.1", + "noop2": "^2.0.0", + "pump": "^1.0.0", + "readdirp": "^2.0.0", + "run-parallel": "^1.1.4" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/netlify-cli/node_modules/copy-template-dir/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/cp-file": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", + "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.10", + "nested-error-stacks": "^2.1.1", + "p-event": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cpy": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", + "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", + "dev": true, + "dependencies": { + "arrify": "^3.0.0", + "cp-file": "^9.1.0", + "globby": "^13.1.1", + "junk": "^4.0.0", + "micromatch": "^4.0.4", + "nested-error-stacks": "^2.1.0", + "p-filter": "^3.0.0", + "p-map": "^5.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cpy/node_modules/cp-file": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", + "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cpy/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cpy/node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cpy/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/cpy/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/crc-32": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", + "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", + "dev": true, + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.3.1" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/netlify-cli/node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/netlify-cli/node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/cron-parser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.8.1.tgz", + "integrity": "sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==", + "dev": true, + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/netlify-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/cross-spawn/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/netlify-cli/node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/decache": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", + "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", + "dev": true, + "dependencies": { + "callsite": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/netlify-cli/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/netlify-cli/node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/netlify-cli/node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/netlify-cli/node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/detective-amd": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.1.tgz", + "integrity": "sha512-e7n0E0Wte78U9lcpl3hsTh1ZJ+zp/rgEbdbzGLgTowSbbSemuHnM8olp4KHMF1eCaurrCE50IU9VkoV13ezK4A==", + "dev": true, + "dependencies": { + "ast-module-types": "^5.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^5.0.0", + "node-source-walk": "^6.0.0" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-cjs": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", + "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-es6": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", + "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", + "dev": true, + "dependencies": { + "node-source-walk": "^6.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-postcss": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", + "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", + "dev": true, + "dependencies": { + "is-url": "^1.2.4", + "postcss": "^8.4.23", + "postcss-values-parser": "^6.0.2" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/detective-sass": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", + "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-scss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", + "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-stylus": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", + "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/detective-typescript": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.0.1.tgz", + "integrity": "sha512-pVCuFWdEAyHI16zO3NBWSAULV8pevSkX3gwK8w3y9RrBGUrig6wDvwv6vUpnu+HfOr0MDmjMkmJGNWaTb6+HkA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^5.59.2", + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.0", + "typescript": "^5.0.4" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/netlify-cli/node_modules/detective-typescript/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/netlify-cli/node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", + "dev": true, + "dependencies": { + "type-fest": "^2.11.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/dot-prop/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/netlify-cli/node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/netlify-cli/node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", + "dev": true, + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/netlify-cli/node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/netlify-cli/node_modules/es-module-lexer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", + "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/es6-promisify": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", + "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/netlify-cli/node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/netlify-cli/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/netlify-cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/execa/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/express-logging": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz", + "integrity": "sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==", + "dev": true, + "dependencies": { + "on-headers": "^1.0.0" + }, + "engines": { + "node": ">= 0.10.26" + } + }, + "node_modules/netlify-cli/node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/express/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/netlify-cli/node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fast-content-type-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz", + "integrity": "sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-equals": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz", + "integrity": "sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-fifo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", + "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/netlify-cli/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "node_modules/netlify-cli/node_modules/fast-json-stringify": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz", + "integrity": "sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ==", + "dev": true, + "dependencies": { + "@fastify/deepmerge": "^1.0.0", + "ajv": "^8.10.0", + "ajv-formats": "^2.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^2.1.0", + "rfdc": "^1.2.0" + } + }, + "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/netlify-cli/node_modules/fast-json-stringify/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-querystring": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.0.0.tgz", + "integrity": "sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fast-uri": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", + "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/netlify-cli/node_modules/fastify": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.17.0.tgz", + "integrity": "sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg==", + "dev": true, + "dependencies": { + "@fastify/ajv-compiler": "^3.5.0", + "@fastify/error": "^3.0.0", + "@fastify/fast-json-stringify-compiler": "^4.3.0", + "abstract-logging": "^2.0.1", + "avvio": "^8.2.0", + "fast-content-type-parse": "^1.0.0", + "fast-json-stringify": "^5.7.0", + "find-my-way": "^7.6.0", + "light-my-request": "^5.6.1", + "pino": "^8.5.0", + "process-warning": "^2.0.0", + "proxy-addr": "^2.0.7", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.5.0", + "semver": "^7.3.7", + "tiny-lru": "^11.0.1" + } + }, + "node_modules/netlify-cli/node_modules/fastify-plugin": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.4.0.tgz", + "integrity": "sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fastify/node_modules/pino": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.14.1.tgz", + "integrity": "sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/netlify-cli/node_modules/fastify/node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fastify/node_modules/process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/netlify-cli/node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/netlify-cli/node_modules/fdir": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.0.1.tgz", + "integrity": "sha512-bdrUUb0eYQrPRlaAtlSRoLs7sp6yKEwbMQuUgwvi/14TnaqhM/deSZUrC5ic+yjm5nEPPWE61oWpTTxQFQMmLA==", + "dev": true, + "peerDependencies": { + "picomatch": "2.x" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/fecha": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", + "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-7.3.0.tgz", + "integrity": "sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==", + "dev": true, + "dependencies": { + "cli-progress": "^3.11.2", + "colors-option": "^4.4.0", + "figures": "^5.0.0", + "got": "^12.3.1", + "is-plain-obj": "^4.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/colors-option": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-4.5.0.tgz", + "integrity": "sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==", + "dev": true, + "dependencies": { + "chalk": "^5.0.1", + "is-plain-obj": "^4.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/netlify-cli/node_modules/fetch-node-website/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/file-type": { + "version": "18.5.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", + "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", + "dev": true, + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/filter-obj": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", + "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/find-my-way": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.6.2.tgz", + "integrity": "sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/find-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/flush-write-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz", + "integrity": "sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "node_modules/netlify-cli/node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/folder-walker": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz", + "integrity": "sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==", + "dev": true, + "dependencies": { + "from2": "^2.1.0" + } + }, + "node_modules/netlify-cli/node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/form-data-encoder": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", + "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", + "dev": true, + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/netlify-cli/node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "dev": true, + "dependencies": { + "from2": "^2.0.3" + } + }, + "node_modules/netlify-cli/node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/netlify-cli/node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/get-amd-module-type": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", + "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", + "dev": true, + "dependencies": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/netlify-cli/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/gh-release-fetch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz", + "integrity": "sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g==", + "dev": true, + "dependencies": { + "@xhmikosr/downloader": "^13.0.0", + "node-fetch": "^3.3.1", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.18.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/netlify-cli/node_modules/gh-release-fetch/node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/netlify-cli/node_modules/git-repo-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", + "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", + "dev": true, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/netlify-cli/node_modules/gitconfiglocal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", + "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/netlify-cli/node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/netlify-cli/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/global-cache-dir": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-4.4.0.tgz", + "integrity": "sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==", + "dev": true, + "dependencies": { + "cachedir": "^2.3.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/global-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/netlify-cli/node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/hasbin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", + "integrity": "sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==", + "dev": true, + "dependencies": { + "async": "~1.5" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/netlify-cli/node_modules/hasbin/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/hasha/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/hexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", + "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", + "dev": true, + "dependencies": { + "ansi-color": "^0.2.1", + "minimist": "^1.1.0", + "process": "^0.10.0", + "xtend": "^4.0.0" + }, + "bin": { + "hexer": "cli.js" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/netlify-cli/node_modules/hexer/node_modules/process": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", + "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/hot-shots": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-10.0.0.tgz", + "integrity": "sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "unix-dgram": "2.x" + } + }, + "node_modules/netlify-cli/node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/http-errors/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/netlify-cli/node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/netlify-cli/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/netlify-cli/node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/netlify-cli/node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/netlify-cli/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", + "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "figures": "^3.2.0", + "run-async": "^2.4.0", + "rxjs": "^6.6.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "inquirer": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/inquirer-autocomplete-prompt/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/inspect-with-kind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", + "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + } + }, + "node_modules/netlify-cli/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/netlify-cli/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/netlify-cli/node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-extendable/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/netlify-cli/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "dependencies": { + "symbol-observable": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/iserror": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", + "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/jaeger-client": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", + "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0", + "opentracing": "^0.14.4", + "thriftrw": "^3.5.0", + "uuid": "^8.3.2", + "xorshift": "^1.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/jaeger-client/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/netlify-cli/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/netlify-cli/node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/netlify-cli/node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/netlify-cli/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true + }, + "node_modules/netlify-cli/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/jsonwebtoken": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/netlify-cli/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/netlify-cli/node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/keep-func-props": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/keep-func-props/-/keep-func-props-4.0.1.tgz", + "integrity": "sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/netlify-cli/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dev": true, + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/netlify-cli/node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/light-my-request": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", + "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0", + "process-warning": "^2.0.0", + "set-cookie-parser": "^2.4.1" + } + }, + "node_modules/netlify-cli/node_modules/light-my-request/node_modules/process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "dependencies": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "listr": "^0.14.2" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "dev": true, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-update-renderer/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr-verbose-renderer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/listr/node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/listr/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/listr/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/locate-path/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/locate-path/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/log-process-errors": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/log-process-errors/-/log-process-errors-8.0.0.tgz", + "integrity": "sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg==", + "dev": true, + "dependencies": { + "colors-option": "^3.0.0", + "figures": "^4.0.0", + "filter-obj": "^3.0.0", + "jest-validate": "^27.4.2", + "map-obj": "^5.0.0", + "moize": "^6.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/figures": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/filter-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", + "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-process-errors/node_modules/map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/log-update/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/logform": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", + "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "node_modules/netlify-cli/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/luxon": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/macos-release": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.0.1.tgz", + "integrity": "sha512-3l6OrhdDg2H2SigtuN3jBh+5dRJRWxNKuJTPBbGeNJTsmt/pj9PO25wYaNb05NuNmAsl435j4rDP6rgNXz7s7g==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/netlify-cli/node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/maxstache": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz", + "integrity": "sha1-IjHVGAung9Xs/DHEX+2seuQnaYQ=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/maxstache-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz", + "integrity": "sha1-nH9cq35f3S2Q2oYUO06WMeoygEA=", + "dev": true, + "dependencies": { + "maxstache": "^1.0.0", + "pump": "^1.0.0", + "split2": "^1.0.0", + "through2": "^2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/split2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", + "integrity": "sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/maxstache-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/netlify-cli/node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dev": true, + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/merge-options/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/micro-api-client": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", + "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/micro-memoize": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.11.tgz", + "integrity": "sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/netlify-cli/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/netlify-cli/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/netlify-cli/node_modules/module-definition": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", + "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", + "dev": true, + "dependencies": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.1" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/moize": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/moize/-/moize-6.1.3.tgz", + "integrity": "sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==", + "dev": true, + "dependencies": { + "fast-equals": "^3.0.1", + "micro-memoize": "^4.0.11" + } + }, + "node_modules/netlify-cli/node_modules/move-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", + "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", + "dev": true, + "dependencies": { + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/move-file/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/multiparty": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", + "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", + "dev": true, + "dependencies": { + "http-errors": "~1.8.1", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/netlify-cli/node_modules/multiparty/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "node_modules/netlify-cli/node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/netlify-cli/node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/netlify": { + "version": "13.1.10", + "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.1.10.tgz", + "integrity": "sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw==", + "dev": true, + "dependencies": { + "@netlify/open-api": "^2.19.1", + "lodash-es": "^4.17.21", + "micro-api-client": "^3.3.0", + "node-fetch": "^3.0.0", + "omit.js": "^2.0.2", + "p-wait-for": "^4.0.0", + "qs": "^6.9.6" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/netlify-headers-parser": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz", + "integrity": "sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "fast-safe-stringify": "^2.0.7", + "is-plain-obj": "^4.0.0", + "map-obj": "^5.0.0", + "path-exists": "^5.0.0", + "toml": "^3.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/netlify-headers-parser/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/netlify-redirect-parser": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-14.1.3.tgz", + "integrity": "sha512-23svKHdO2QUEJHo3knQV1EpAh8UX/+8zQmwxVMSby4/NRj5vPS+u/yKesY/uHAgcw/28HwvEUGQdbXsPPe7J/Q==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.1.1", + "filter-obj": "^5.0.0", + "is-plain-obj": "^4.0.0", + "path-exists": "^5.0.0", + "toml": "^3.0.0" + }, + "engines": { + "node": "^14.16.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/netlify-redirect-parser/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/netlify-redirector": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.4.0.tgz", + "integrity": "sha512-ssD+V9o2DD9VnilOYC+34i07IrlY8XDsh5mN+qLYA4MxCpdALKXFICcz1KzsHZabuIS5XsF1VP/HzDyx5ubJ2g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/netlify/node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/netlify-cli/node_modules/netlify/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/netlify/node_modules/p-wait-for": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", + "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", + "dev": true, + "dependencies": { + "p-timeout": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/netlify-cli/node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/netlify-cli/node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/node-source-walk": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.1.tgz", + "integrity": "sha512-QUlkJYzrNewUCp4c7CCPN8Mh8c+pwNs23JsQfHKUwIkCxYa6c0AFLuUJIZxU6BdnarfytPSGKm1YMAz06hj9cw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.21.8" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" + } + }, + "node_modules/netlify-cli/node_modules/node-version-alias": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-3.4.1.tgz", + "integrity": "sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==", + "dev": true, + "dependencies": { + "all-node-versions": "^11.3.0", + "filter-obj": "^5.1.0", + "is-plain-obj": "^4.1.0", + "normalize-node-version": "^12.4.0", + "path-exists": "^5.0.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/node-version-alias/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/noop2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz", + "integrity": "sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/normalize-node-version": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-12.4.0.tgz", + "integrity": "sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==", + "dev": true, + "dependencies": { + "all-node-versions": "^11.3.0", + "filter-obj": "^5.1.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/netlify-cli/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/npm-run-path/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/omit.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", + "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/netlify-cli/node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/netlify-cli/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/open/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/opentracing": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", + "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/netlify-cli/node_modules/ora": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/ora/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/ora/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/os-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", + "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", + "dev": true, + "dependencies": { + "macos-release": "^3.0.1", + "windows-release": "^5.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-event/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-every": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz", + "integrity": "sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/p-every/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/p-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", + "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "dev": true, + "dependencies": { + "p-map": "^5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "dependencies": { + "aggregate-error": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-map/node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-map/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-reduce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", + "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-retry": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", + "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.1", + "retry": "^0.13.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-wait-for": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", + "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", + "dev": true, + "dependencies": { + "p-timeout": "^6.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/p-wait-for/node_modules/p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/package-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", + "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "dev": true, + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/netlify-cli/node_modules/package-json/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/netlify-cli/node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true, + "bin": { + "parse-github-url": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/parse-gitignore": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", + "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/netlify-cli/node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dev": true, + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/netlify-cli/node_modules/pino-abstract-transport/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/netlify-cli/node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/netlify-cli/node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" + } + }, + "node_modules/netlify-cli/node_modules/postcss-values-parser/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/precinct": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.2.tgz", + "integrity": "sha512-UuhB1q0nEFf80iMGcs7IoT0o1GnNFWT4CjZjcMsHDXAIsW/aiLovOSbeMJ2Ejg6raRsplsriZZkoBUh0h/IHlw==", + "dev": true, + "dependencies": { + "@dependents/detective-less": "^4.0.0", + "commander": "^10.0.1", + "detective-amd": "^5.0.1", + "detective-cjs": "^5.0.1", + "detective-es6": "^4.0.0", + "detective-postcss": "^6.1.3", + "detective-sass": "^5.0.0", + "detective-scss": "^4.0.0", + "detective-stylus": "^4.0.0", + "detective-typescript": "^11.0.1", + "module-definition": "^5.0.0", + "node-source-walk": "^6.0.1" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/netlify-cli/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/prettyjson": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", + "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", + "dev": true, + "dependencies": { + "colors": "1.4.0", + "minimist": "^1.2.0" + }, + "bin": { + "prettyjson": "bin/prettyjson" + } + }, + "node_modules/netlify-cli/node_modules/printj": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "dev": true, + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/netlify-cli/node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/protobufjs": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", + "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/netlify-cli/node_modules/protobufjs/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/netlify-cli/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/ps-list": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.0.tgz", + "integrity": "sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/netlify-cli/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "dev": true, + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/netlify-cli/node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/raw-body/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/netlify-cli/node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/netlify-cli/node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dev": true, + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/netlify-cli/node_modules/readdir-glob": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", + "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/netlify-cli/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/netlify-cli/node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/netlify-cli/node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/regex-not/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/netlify-cli/node_modules/regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/netlify-cli/node_modules/registry-auth-token": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "dev": true, + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/netlify-cli/node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/netlify-cli/node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/netlify-cli/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/restore-cursor/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/netlify-cli/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/netlify-cli/node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/netlify-cli/node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/netlify-cli/node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/netlify-cli/node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/netlify-cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/safe-regex2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", + "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "dev": true, + "dependencies": { + "ret": "~0.2.0" + } + }, + "node_modules/netlify-cli/node_modules/safe-regex2/node_modules/ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/secure-json-parse": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.6.0.tgz", + "integrity": "sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/netlify-cli/node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/netlify-cli/node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/netlify-cli/node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/sonic-boom": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", + "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/netlify-cli/node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/netlify-cli/node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/netlify-cli/node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/netlify-cli/node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/netlify-cli/node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/stdin-discarder/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/netlify-cli/node_modules/stdin-discarder/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/netlify-cli/node_modules/streamx": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", + "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/netlify-cli/node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/strip-ansi-control-characters": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz", + "integrity": "sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/strip-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", + "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", + "dev": true, + "dependencies": { + "inspect-with-kind": "^1.0.5", + "is-plain-obj": "^1.1.0" + } + }, + "node_modules/netlify-cli/node_modules/strip-dirs/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/netlify-cli/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/netlify-cli/node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/tabtab": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-3.0.2.tgz", + "integrity": "sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==", + "dev": true, + "dependencies": { + "debug": "^4.0.1", + "es6-promisify": "^6.0.0", + "inquirer": "^6.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "untildify": "^3.0.3" + } + }, + "node_modules/netlify-cli/node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/netlify-cli/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/tempy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", + "dev": true, + "dependencies": { + "is-stream": "^3.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/tempy/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/terminal-link": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", + "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "supports-hyperlinks": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/terminal-link/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/thread-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", + "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", + "dev": true, + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/netlify-cli/node_modules/thriftrw": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", + "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", + "dev": true, + "dependencies": { + "bufrw": "^1.2.1", + "error": "7.0.2", + "long": "^2.4.0" + }, + "bin": { + "thrift2json": "thrift2json.js" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/netlify-cli/node_modules/thriftrw/node_modules/long": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", + "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/netlify-cli/node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/through2-filter/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/netlify-cli/node_modules/through2-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz", + "integrity": "sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/netlify-cli/node_modules/through2-map/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/netlify-cli/node_modules/through2-map/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/netlify-cli/node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/tiny-lru": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.0.1.tgz", + "integrity": "sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/netlify-cli/node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/netlify-cli/node_modules/tmp-promise/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/netlify-cli/node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/to-readable-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-3.0.0.tgz", + "integrity": "sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/netlify-cli/node_modules/to-regex/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/netlify-cli/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/netlify-cli/node_modules/token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/netlify-cli/node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/tomlify-j0.4": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", + "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/netlify-cli/node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/netlify-cli/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/netlify-cli/node_modules/type-fest": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", + "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netlify-cli/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/netlify-cli/node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/netlify-cli/node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dev": true, + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", + "dev": true, + "bin": { + "ulid": "bin/cli.js" + } + }, + "node_modules/netlify-cli/node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/netlify-cli/node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/unix-dgram": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.6.tgz", + "integrity": "sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.16.0" + }, + "engines": { + "node": ">=0.10.48" + } + }, + "node_modules/netlify-cli/node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/netlify-cli/node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "dev": true, + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/netlify-cli/node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/netlify-cli/node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/netlify-cli/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/netlify-cli/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/netlify-cli/node_modules/validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/netlify-cli/node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/netlify-cli/node_modules/wait-port": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.0.4.tgz", + "integrity": "sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "commander": "^9.3.0", + "debug": "^4.3.4" + }, + "bin": { + "wait-port": "bin/wait-port.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/netlify-cli/node_modules/wait-port/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/netlify-cli/node_modules/web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/netlify-cli/node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/netlify-cli/node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/netlify-cli/node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/widest-line/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/windows-release": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", + "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", + "dev": true, + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/winston": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", + "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/netlify-cli/node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dev": true, + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/netlify-cli/node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/netlify-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/netlify-cli/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/netlify-cli/node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/netlify-cli/node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/xorshift": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", + "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/netlify-cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/netlify-cli/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/netlify-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/netlify-cli/node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/netlify-cli/node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/netlify-cli/node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/netlify-cli/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/netlify-cli/node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-cli": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz", + "integrity": "sha512-3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "chokidar": "^3.3.0", + "dependency-graph": "^0.9.0", + "fs-extra": "^9.0.0", + "get-stdin": "^8.0.0", + "globby": "^11.0.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "postcss-reporter": "^6.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "postcss": "bin/postcss" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reporter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", + "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "lodash": "^4.17.11", + "log-symbols": "^2.2.0", + "postcss": "^7.0.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-reporter/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reporter/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reporter/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/postcss-reporter/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/postcss-reporter/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reporter/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/tempy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", + "dev": true, + "dependencies": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true + }, + "cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", + "dev": true + }, + "careful-downloader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/careful-downloader/-/careful-downloader-3.0.0.tgz", + "integrity": "sha512-5KMIPa0Yoj+2tY6OK9ewdwcPebp+4XS0dMYvvF9/8fkFEfvnEpWmHWYs9JNcZ7RZUvY/v6oPzLpmmTzSIbroSA==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "decompress": "^4.2.1", + "fs-extra": "^11.1.1", + "got": "^12.6.0", + "is-path-inside": "^4.0.0", + "tempy": "^3.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "requires": { + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dev": true, + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + } + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true + } + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "dependency-graph": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", + "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "electron-to-chromium": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.1.tgz", + "integrity": "sha512-9ldvb6QMHiDpUNF1iSwBTiTT0qXEN+xIO5WlCJrC5gt0z74ofOiqR698vaJqYWnri0XZiF0YmnrFmGq/EmpGAA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "hugo-extended": { + "version": "0.115.2", + "resolved": "https://registry.npmjs.org/hugo-extended/-/hugo-extended-0.115.2.tgz", + "integrity": "sha512-PCLH9TwexpYTVsrAI8AFV0PJLC4vHsncxTRcwvTYl7atLSWEIySBvO7z5ivx2vAvwzrgnCOVgLllIgJISsYnpg==", + "dev": true, + "requires": { + "careful-downloader": "^3.0.0", + "log-symbols": "^5.1.0", + "read-pkg-up": "^9.1.0" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "requires": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunr-languages": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", + "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "netlify-cli": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/netlify-cli/-/netlify-cli-15.9.0.tgz", + "integrity": "sha512-AqeT+3vb8dWErhVBtso7VjxGdszwaWH9AGnwn8tvyknjxN+qNtlXGb5PxcfI1COaL2BlSphMMGjt/jl7C1NBkQ==", + "dev": true, + "requires": { + "@bugsnag/js": "7.20.2", + "@fastify/static": "6.10.2", + "@netlify/build": "29.16.1", + "@netlify/build-info": "7.4.1", + "@netlify/config": "20.6.0", + "@netlify/edge-bundler": "8.16.4", + "@netlify/framework-info": "9.8.10", + "@netlify/local-functions-proxy": "1.1.1", + "@netlify/serverless-functions-api": "1.5.1", + "@netlify/zip-it-and-ship-it": "9.13.0", + "@octokit/rest": "19.0.13", + "@skn0tt/lambda-local": "2.0.3", + "ansi-escapes": "6.2.0", + "ansi-styles": "6.2.1", + "ansi-to-html": "0.7.2", + "ascii-table": "0.0.9", + "backoff": "2.5.0", + "better-opn": "3.0.2", + "boxen": "7.1.1", + "chalk": "5.2.0", + "chokidar": "3.5.3", + "ci-info": "3.8.0", + "clean-deep": "3.4.0", + "commander": "10.0.1", + "comment-json": "4.2.3", + "concordance": "5.0.4", + "configstore": "6.0.0", + "content-type": "1.0.5", + "cookie": "0.5.0", + "copy-template-dir": "1.4.0", + "cron-parser": "4.8.1", + "debug": "4.3.4", + "decache": "4.6.2", + "dot-prop": "7.2.0", + "dotenv": "16.0.3", + "env-paths": "3.0.0", + "envinfo": "7.8.1", + "etag": "1.8.1", + "execa": "5.1.1", + "express": "4.18.2", + "express-logging": "1.1.1", + "extract-zip": "2.0.1", + "fastest-levenshtein": "1.0.16", + "fastify": "4.17.0", + "find-up": "6.3.0", + "flush-write-stream": "2.0.0", + "folder-walker": "3.2.0", + "from2-array": "0.0.4", + "fuzzy": "0.1.3", + "get-port": "5.1.1", + "gh-release-fetch": "4.0.3", + "git-repo-info": "2.1.1", + "gitconfiglocal": "2.1.0", + "hasbin": "1.2.3", + "hasha": "5.2.2", + "http-proxy": "1.18.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "5.0.1", + "inquirer": "6.5.2", + "inquirer-autocomplete-prompt": "1.4.0", + "is-docker": "3.0.0", + "is-stream": "3.0.0", + "is-wsl": "2.2.0", + "isexe": "2.0.0", + "jsonwebtoken": "9.0.1", + "jwt-decode": "3.1.2", + "listr": "0.14.3", + "locate-path": "7.2.0", + "lodash": "4.17.21", + "log-symbols": "5.1.0", + "log-update": "5.0.1", + "minimist": "1.2.8", + "multiparty": "4.2.3", + "netlify": "13.1.10", + "netlify-headers-parser": "7.1.2", + "netlify-redirect-parser": "14.1.3", + "netlify-redirector": "0.4.0", + "node-fetch": "2.6.12", + "node-version-alias": "3.4.1", + "ora": "6.3.1", + "p-filter": "3.0.0", + "p-map": "5.5.0", + "p-wait-for": "5.0.2", + "parallel-transform": "1.2.0", + "parse-github-url": "1.0.2", + "parse-gitignore": "2.0.0", + "path-key": "4.0.0", + "prettyjson": "1.2.5", + "pump": "3.0.0", + "raw-body": "2.5.2", + "read-pkg-up": "9.1.0", + "semver": "7.5.4", + "source-map-support": "0.5.21", + "strip-ansi-control-characters": "2.0.0", + "tabtab": "3.0.2", + "tempy": "3.0.0", + "terminal-link": "3.0.0", + "through2-filter": "3.0.0", + "through2-map": "3.0.0", + "to-readable-stream": "3.0.0", + "toml": "3.0.0", + "ulid": "2.3.0", + "unixify": "1.0.0", + "update-notifier": "6.0.2", + "uuid": "9.0.0", + "wait-port": "1.0.4", + "winston": "3.8.2", + "write-file-atomic": "5.0.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true + }, + "@bugsnag/browser": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", + "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", + "dev": true, + "requires": { + "@bugsnag/core": "^7.19.0" + } + }, + "@bugsnag/core": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", + "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", + "dev": true, + "requires": { + "@bugsnag/cuid": "^3.0.0", + "@bugsnag/safe-json-stringify": "^6.0.0", + "error-stack-parser": "^2.0.3", + "iserror": "0.0.2", + "stack-generator": "^2.0.3" + } + }, + "@bugsnag/cuid": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", + "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==", + "dev": true + }, + "@bugsnag/js": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", + "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", + "dev": true, + "requires": { + "@bugsnag/browser": "^7.20.2", + "@bugsnag/node": "^7.19.0" + } + }, + "@bugsnag/node": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", + "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", + "dev": true, + "requires": { + "@bugsnag/core": "^7.19.0", + "byline": "^5.0.0", + "error-stack-parser": "^2.0.2", + "iserror": "^0.0.2", + "pump": "^3.0.0", + "stack-generator": "^2.0.3" + } + }, + "@bugsnag/safe-json-stringify": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", + "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@dabh/diagnostics": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", + "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "dev": true, + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "@dependents/detective-less": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.0.0.tgz", + "integrity": "sha512-0udn+HKjGUzTX4Z+0vXdEJVsO28gxy5QxWjeChK4ZH+bwdvIXLuztiGZk8wLyAG1+LNZ5haVHKr5j1XfJnAkyQ==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.0" + } + }, + "@fastify/accept-negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", + "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", + "dev": true + }, + "@fastify/ajv-compiler": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", + "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", + "dev": true, + "requires": { + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "fast-uri": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "@fastify/deepmerge": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", + "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==", + "dev": true + }, + "@fastify/error": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", + "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==", + "dev": true + }, + "@fastify/fast-json-stringify-compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", + "dev": true, + "requires": { + "fast-json-stringify": "^5.7.0" + } + }, + "@fastify/send": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@fastify/send/-/send-2.0.1.tgz", + "integrity": "sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==", + "dev": true, + "requires": { + "@lukeed/ms": "^2.0.1", + "escape-html": "~1.0.3", + "fast-decode-uri-component": "^1.0.1", + "http-errors": "2.0.0", + "mime": "^3.0.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + } + } + }, + "@fastify/static": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@fastify/static/-/static-6.10.2.tgz", + "integrity": "sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ==", + "dev": true, + "requires": { + "@fastify/accept-negotiator": "^1.0.0", + "@fastify/send": "^2.0.0", + "content-disposition": "^0.5.3", + "fastify-plugin": "^4.0.0", + "glob": "^8.0.1", + "p-limit": "^3.1.0", + "readable-stream": "^4.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "@grpc/grpc-js": { + "version": "1.8.17", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.17.tgz", + "integrity": "sha512-DGuSbtMFbaRsyffMf+VEkVu8HkSXEUfO3UyGJNtqxW9ABdtTIA+2UXAJpwbJS+xfQxuwqLUeELmL6FuZkOqPxw==", + "dev": true, + "requires": { + "@grpc/proto-loader": "^0.7.0", + "@types/node": ">=12.12.47" + } + }, + "@grpc/proto-loader": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.7.tgz", + "integrity": "sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==", + "dev": true, + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^7.0.0", + "yargs": "^17.7.2" + } + }, + "@honeycombio/opentelemetry-node": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@honeycombio/opentelemetry-node/-/opentelemetry-node-0.4.0.tgz", + "integrity": "sha512-6PFX8FGW7uA7vQ3mxNIoN36rH9Zx5kXh4kKP9zu28nynyWyy9JE3l8PNJYd9FS2L/d88ZUpQAiQ1pROaANd5MA==", + "dev": true, + "requires": { + "@grpc/grpc-js": "^1.7.3", + "@opentelemetry/api": "^1.4.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "^0.36.1", + "@opentelemetry/exporter-metrics-otlp-proto": "^0.36.1", + "@opentelemetry/exporter-trace-otlp-grpc": "^0.36.1", + "@opentelemetry/exporter-trace-otlp-proto": "^0.36.1", + "@opentelemetry/resources": "^1.10.1", + "@opentelemetry/sdk-metrics": "^1.10.1", + "@opentelemetry/sdk-node": "^0.36.1", + "@opentelemetry/sdk-trace-base": "^1.10.1", + "axios": "^1.1.3" + } + }, + "@humanwhocodes/momoa": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", + "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", + "dev": true + }, + "@import-maps/resolve": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", + "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", + "dev": true + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@lukeed/ms": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.1.tgz", + "integrity": "sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==", + "dev": true + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dev": true, + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@netlify/binary-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@netlify/binary-info/-/binary-info-1.0.0.tgz", + "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==", + "dev": true + }, + "@netlify/build": { + "version": "29.16.1", + "resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.16.1.tgz", + "integrity": "sha512-1D3l0NiCVEFF5aU2prVMP8MQr2Bu+UuyYe69Z7k/7GjFIx4Q1sLgewTf4p+al3LhSLT5fs52cbIec9pT9HSjyQ==", + "dev": true, + "requires": { + "@bugsnag/js": "^7.0.0", + "@honeycombio/opentelemetry-node": "^0.4.0", + "@netlify/cache-utils": "^5.1.5", + "@netlify/config": "^20.6.0", + "@netlify/edge-bundler": "8.16.4", + "@netlify/framework-info": "^9.8.10", + "@netlify/functions-utils": "^5.2.18", + "@netlify/git-utils": "^5.1.1", + "@netlify/plugins-list": "^6.68.0", + "@netlify/run-utils": "^5.1.1", + "@netlify/zip-it-and-ship-it": "9.13.0", + "@opentelemetry/api": "^1.4.1", + "@sindresorhus/slugify": "^2.0.0", + "ansi-escapes": "^6.0.0", + "chalk": "^5.0.0", + "clean-stack": "^4.0.0", + "execa": "^6.0.0", + "fdir": "^6.0.1", + "figures": "^5.0.0", + "filter-obj": "^5.0.0", + "got": "^12.0.0", + "hot-shots": "10.0.0", + "indent-string": "^5.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "keep-func-props": "^4.0.0", + "locate-path": "^7.0.0", + "log-process-errors": "^8.0.0", + "map-obj": "^5.0.0", + "memoize-one": "^6.0.0", + "os-name": "^5.0.0", + "p-event": "^5.0.0", + "p-every": "^2.0.0", + "p-filter": "^3.0.0", + "p-locate": "^6.0.0", + "p-reduce": "^3.0.0", + "path-exists": "^5.0.0", + "path-type": "^5.0.0", + "pkg-dir": "^7.0.0", + "pretty-ms": "^8.0.0", + "ps-list": "^8.0.0", + "read-pkg-up": "^9.0.0", + "readdirp": "^3.4.0", + "resolve": "^2.0.0-next.1", + "rfdc": "^1.3.0", + "safe-json-stringify": "^1.2.0", + "semver": "^7.3.8", + "string-width": "^5.0.0", + "strip-ansi": "^7.0.0", + "supports-color": "^9.0.0", + "terminal-link": "^3.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.0", + "uuid": "^9.0.0", + "yargs": "^17.6.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true + }, + "cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true + }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "parse-ms": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", + "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", + "dev": true + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true + }, + "pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "requires": { + "find-up": "^6.3.0" + } + }, + "pretty-ms": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", + "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", + "dev": true, + "requires": { + "parse-ms": "^3.0.0" + } + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "@netlify/build-info": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.4.1.tgz", + "integrity": "sha512-JucExQCHJCk8smscd+fzU2z0MM7vyw4XJJWREq9Im5i8nPy56mjG0oeODk7DB7pQK6X9wyUViwVRPF8ftwuq9Q==", + "dev": true, + "requires": { + "@bugsnag/js": "^7.20.0", + "@netlify/framework-info": "^9.8.10", + "dot-prop": "^7.2.0", + "find-up": "^6.3.0", + "minimatch": "^9.0.0", + "read-pkg": "^7.1.0", + "semver": "^7.3.8", + "toml": "^3.0.0", + "yaml": "^2.1.3", + "yargs": "^17.6.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + } + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + }, + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true + } + } + }, + "@netlify/cache-utils": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-5.1.5.tgz", + "integrity": "sha512-lMNdFmy2Yu3oVquSPooRDLxJ8QOsIX6X6vzA2pKz/9V2LQFJiqBukggXM+Rnqzk1regPpdJ0jK3dPGvOKaRQgg==", + "dev": true, + "requires": { + "cpy": "^9.0.0", + "get-stream": "^6.0.0", + "globby": "^13.0.0", + "junk": "^4.0.0", + "locate-path": "^7.0.0", + "move-file": "^3.0.0", + "path-exists": "^5.0.0", + "readdirp": "^3.4.0" + }, + "dependencies": { + "globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "@netlify/config": { + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@netlify/config/-/config-20.6.0.tgz", + "integrity": "sha512-YPWvkq7hYgYLVsbEPbGq7aZQh59D2h5NeIwgRZxabsheIMriyxpDZVVajK1+z1U0Z2DsJxn+XSOJSNSSKUIk4w==", + "dev": true, + "requires": { + "chalk": "^5.0.0", + "cron-parser": "^4.1.0", + "deepmerge": "^4.2.2", + "dot-prop": "^7.0.0", + "execa": "^6.0.0", + "fast-safe-stringify": "^2.0.7", + "figures": "^5.0.0", + "filter-obj": "^5.0.0", + "find-up": "^6.0.0", + "indent-string": "^5.0.0", + "is-plain-obj": "^4.0.0", + "js-yaml": "^4.0.0", + "map-obj": "^5.0.0", + "netlify": "^13.1.10", + "netlify-headers-parser": "^7.1.2", + "netlify-redirect-parser": "^14.1.3", + "node-fetch": "^3.3.1", + "omit.js": "^2.0.2", + "p-locate": "^6.0.0", + "path-type": "^5.0.0", + "toml": "^3.0.0", + "tomlify-j0.4": "^3.0.0", + "validate-npm-package-name": "^4.0.0", + "yargs": "^17.6.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true + }, + "node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "@netlify/edge-bundler": { + "version": "8.16.4", + "resolved": "https://registry.npmjs.org/@netlify/edge-bundler/-/edge-bundler-8.16.4.tgz", + "integrity": "sha512-5sYymRzZLzdSp1AtCcuEdjeQ/QcJ6LORERU5Nr48MY5Y9GKEHC7uIeQFwLT/YMgnDRd4FqPv+g8RBSu3HP9Czg==", + "dev": true, + "requires": { + "@import-maps/resolve": "^1.0.1", + "ajv": "^8.11.2", + "ajv-errors": "^3.0.0", + "better-ajv-errors": "^1.2.0", + "common-path-prefix": "^3.0.0", + "env-paths": "^3.0.0", + "execa": "^6.0.0", + "find-up": "^6.3.0", + "get-port": "^6.1.2", + "glob-to-regexp": "^0.4.1", + "is-path-inside": "^4.0.0", + "jsonc-parser": "^3.2.0", + "node-fetch": "^3.1.1", + "node-stream-zip": "^1.15.0", + "p-retry": "^5.1.1", + "p-wait-for": "^4.1.0", + "path-key": "^4.0.0", + "regexp-tree": "^0.1.24", + "semver": "^7.3.8", + "tmp-promise": "^3.0.3", + "uuid": "^9.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "dev": true, + "requires": {} + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", + "dev": true + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true + }, + "p-wait-for": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", + "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", + "dev": true, + "requires": { + "p-timeout": "^5.0.0" + } + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "@netlify/esbuild": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild/-/esbuild-0.14.39.tgz", + "integrity": "sha512-C3xpwdT2xw6SnSb+hLQoxjtikAKiz6BjQjzlIaysHDpGbmIcmUHZ/X+dyLtCqAvf15WNK5GSBZYOlpgcOE0WZA==", + "dev": true, + "requires": { + "@netlify/esbuild-android-64": "0.14.39", + "@netlify/esbuild-android-arm64": "0.14.39", + "@netlify/esbuild-darwin-64": "0.14.39", + "@netlify/esbuild-darwin-arm64": "0.14.39", + "@netlify/esbuild-freebsd-64": "0.14.39", + "@netlify/esbuild-freebsd-arm64": "0.14.39", + "@netlify/esbuild-linux-32": "0.14.39", + "@netlify/esbuild-linux-64": "0.14.39", + "@netlify/esbuild-linux-arm": "0.14.39", + "@netlify/esbuild-linux-arm64": "0.14.39", + "@netlify/esbuild-linux-mips64le": "0.14.39", + "@netlify/esbuild-linux-ppc64le": "0.14.39", + "@netlify/esbuild-linux-riscv64": "0.14.39", + "@netlify/esbuild-linux-s390x": "0.14.39", + "@netlify/esbuild-netbsd-64": "0.14.39", + "@netlify/esbuild-openbsd-64": "0.14.39", + "@netlify/esbuild-sunos-64": "0.14.39", + "@netlify/esbuild-windows-32": "0.14.39", + "@netlify/esbuild-windows-64": "0.14.39", + "@netlify/esbuild-windows-arm64": "0.14.39" + } + }, + "@netlify/esbuild-android-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz", + "integrity": "sha512-azq+lsvjRsKLap8ubIwSJXGyknUACqYu5h98Fvyoh40Qk4QXIVKl16JIJ4s+B7jy2k9qblEc5c4nxdDA3aGbVA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-android-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz", + "integrity": "sha512-WhIP7ePq4qMC1sxoaeB9SsJqSW6uzW7XDj/IuWl1l9r94nwxywU1sYdVLaF2mZr15njviazYjVr8x1d+ipwL3w==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-darwin-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz", + "integrity": "sha512-eF4GvLYiDxtcyjFT55+h+8c8A2HltjeMezCqkt3AQSgOdu1nhlvwbBhIdg2dyM6gKEaEm5hBtTbicEDSwsLodA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-darwin-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz", + "integrity": "sha512-b7rtnX/VtYwNbUCxs3eulrCWJ+u2YvqDcXiIV1ka+od+N0fTx+4RrVkVp1lha9L0wEJYK9J7UWZOMLMyd1ynRg==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-freebsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz", + "integrity": "sha512-XtusxDJt2hUKUdggbTFolMx0kJL2zEa4STI7YwpB+ukEWoW5rODZjiLZbqqYLcjDH8k4YwHaMxs103L8eButEQ==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-freebsd-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz", + "integrity": "sha512-A9XZKai+k6kfndCtN6Dh2usT28V0+OGxzFdZsANONPQiEUTrGZCgwcHWiVlVn7SeAwPR1tKZreTnvrfj8cj7hA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-32": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz", + "integrity": "sha512-ZQnqk/82YRvINY+aF+LlGfRZ19c5mH0jaxsO046GpIOPx6PcXHG8JJ2lg+vLJVe4zFPohxzabcYpwFuT4cg/GA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz", + "integrity": "sha512-IQtswVw7GAKNX/3yV390wSfSXvMWy0d5cw8csAffwBk9gupftY2lzepK4Cn6uD/aqLt3Iku33FbHop/2nPGfQA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-arm": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz", + "integrity": "sha512-QdOzQniOed0Bz1cTC9TMMwvtAqKayYv66H4edJlbvElC81yJZF/c9XhmYWJ6P5g4nkChZubQ5RcQwTLmrFGexg==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz", + "integrity": "sha512-4Jie4QV6pWWuGN7TAshNMGbdTA9+VbRkv3rPIxhgK5gBfmsAV1yRKsumE4Y77J0AZNRiOriyoec4zc1qkmI3zg==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-mips64le": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz", + "integrity": "sha512-Htozxr95tw4tSd86YNbCLs1eoYQzNu/cHpzFIkuJoztZueUhl8XpRvBdob7n3kEjW1gitLWAIn8XUwSt+aJ1Tg==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-ppc64le": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz", + "integrity": "sha512-tFy0ufWIdjeuk1rPHee00TZlhr9OSF00Ufb4ROFyt2ArKuMSkWRJuDgx6MtZcAnCIN4cybo/xWl3MKTM+scnww==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-riscv64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz", + "integrity": "sha512-ZzfKvwIxL7wQnYbVFpyNW0wotnLoKageUEM57RbjekesJoNQnqUR6Usm+LDZoB8iRsI58VX1IxnstP0cX8vOHw==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-linux-s390x": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz", + "integrity": "sha512-yjC0mFwnuMRoh0WcF0h71MF71ytZBFEQQTRdgiGT0+gbC4UApBqnTkJdLx32RscBKi9skbMChiJ748hDJou6FA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-netbsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz", + "integrity": "sha512-mIq4znOoz3YfTVdv3sIWfR4Zx5JgMnT4srlhC5KYVHibhxvyDdin5txldYXmR4Zv4dZd6DSuWFsn441aUegHeA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-openbsd-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz", + "integrity": "sha512-+t6QdzJCngH19hV7ClpFAeFDI2ko/HNcFbiNwaXTMVLB3hWi1sJtn+fzZck5HfzN4qsajAVqZq4nwX69SSt25A==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-sunos-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz", + "integrity": "sha512-HLfXG6i2p3wyyyWHeeP4ShGDJ1zRMnf9YLJLe2ezv2KqvcKw/Un/m/FBuDW1p13oSUO7ShISMzgc1dw1GGBEOQ==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-windows-32": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz", + "integrity": "sha512-ZpSQcKbVSCU3ln7mHpsL/5dWsUqCNdTnC5YAArnaOwdrlIunrsbo5j4MOZRRcGExb2uvTc/rb+D3mlGb8j1rkA==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-windows-64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz", + "integrity": "sha512-I3gCdO8+6IDhT4Y1ZmV4o2Gg0oELv7N4kCcE4kqclz10fWHNjf19HQNHyBJe0AWnFV5ZfT154VVD31dqgwpgFw==", + "dev": true, + "optional": true + }, + "@netlify/esbuild-windows-arm64": { + "version": "0.14.39", + "resolved": "https://registry.npmjs.org/@netlify/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz", + "integrity": "sha512-WX52W8U1lsfWcz6NWoSpDs57lgiiMHN23seq8G2bvxzGS/tvYD3dxVLLW5UPoKSnFDyVQT7b6Zkt6AkBten1yQ==", + "dev": true, + "optional": true + }, + "@netlify/framework-info": { + "version": "9.8.10", + "resolved": "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-9.8.10.tgz", + "integrity": "sha512-VT8ejAaB/XU2xRpdpQinHUO1YL3+BMx6LJ49wJk2u9Yq/VI1/gYCi5VqbqTHBQXJUlOi84YuiRlrDBsLpPr8eg==", + "dev": true, + "requires": { + "ajv": "^8.12.0", + "filter-obj": "^5.0.0", + "find-up": "^6.3.0", + "is-plain-obj": "^4.0.0", + "locate-path": "^7.0.0", + "p-filter": "^3.0.0", + "p-locate": "^6.0.0", + "process": "^0.11.10", + "read-pkg-up": "^9.0.0", + "semver": "^7.3.8" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "@netlify/functions-utils": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.18.tgz", + "integrity": "sha512-da/DvWJw/yE9VBPuBkqPH0E/G3lsnxugqZqkwmA4DnPkdN/qythIBPYznw4un1tVmA5ekZRP3var8bZDZ0DPNQ==", + "dev": true, + "requires": { + "@netlify/zip-it-and-ship-it": "9.13.0", + "cpy": "^9.0.0", + "path-exists": "^5.0.0" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "@netlify/git-utils": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-5.1.1.tgz", + "integrity": "sha512-oyHieuTZH3rKTmg7EKpGEGa28IFxta2oXuVwpPJI/FJAtBje3UE+yko0eDjNufgm3AyGa8G77trUxgBhInAYuw==", + "dev": true, + "requires": { + "execa": "^6.0.0", + "map-obj": "^5.0.0", + "micromatch": "^4.0.2", + "moize": "^6.1.3", + "path-exists": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "@netlify/local-functions-proxy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy/-/local-functions-proxy-1.1.1.tgz", + "integrity": "sha512-eXSsayLT6PMvjzFQpjC9nkg2Otc3lZ5GoYele9M6f8PmsvWpaXRhwjNQ0NYhQQ2UZbLMIiO2dH8dbRsT3bMkFw==", + "dev": true, + "requires": { + "@netlify/local-functions-proxy-darwin-arm64": "1.1.1", + "@netlify/local-functions-proxy-darwin-x64": "1.1.1", + "@netlify/local-functions-proxy-freebsd-arm64": "1.1.1", + "@netlify/local-functions-proxy-freebsd-x64": "1.1.1", + "@netlify/local-functions-proxy-linux-arm": "1.1.1", + "@netlify/local-functions-proxy-linux-arm64": "1.1.1", + "@netlify/local-functions-proxy-linux-ia32": "1.1.1", + "@netlify/local-functions-proxy-linux-ppc64": "1.1.1", + "@netlify/local-functions-proxy-linux-x64": "1.1.1", + "@netlify/local-functions-proxy-openbsd-x64": "1.1.1", + "@netlify/local-functions-proxy-win32-ia32": "1.1.1", + "@netlify/local-functions-proxy-win32-x64": "1.1.1" + } + }, + "@netlify/local-functions-proxy-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-arm64/-/local-functions-proxy-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-lphJ9qqZ3glnKWEqlemU1LMqXxtJ/tKf7VzakqqyjigwLscXSZSb6fupSjQfd4tR1xqxA76ylws/2HDhc/gs+Q==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-darwin-x64/-/local-functions-proxy-darwin-x64-1.1.1.tgz", + "integrity": "sha512-4CRB0H+dXZzoEklq5Jpmg+chizXlVwCko94d8+UHWCgy/bA3M/rU/BJ8OLZisnJaAktHoeLABKtcLOhtRHpxZQ==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-freebsd-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-arm64/-/local-functions-proxy-freebsd-arm64-1.1.1.tgz", + "integrity": "sha512-u13lWTVMJDF0A6jX7V4N3HYGTIHLe5d1Z2wT43fSIHwXkTs6UXi72cGSraisajG+5JFIwHfPr7asw5vxFC0P9w==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-freebsd-x64/-/local-functions-proxy-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-g5xw4xATK5YDzvXtzJ8S1qSkWBiyF8VVRehXPMOAMzpGjCX86twYhWp8rbAk7yA1zBWmmWrWNA2Odq/MgpKJJg==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-linux-arm": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm/-/local-functions-proxy-linux-arm-1.1.1.tgz", + "integrity": "sha512-YsTpL+AbHwQrfHWXmKnwUrJBjoUON363nr6jUG1ueYnpbbv6wTUA7gI5snMi/gkGpqFusBthAA7C30e6bixfiA==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-linux-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-arm64/-/local-functions-proxy-linux-arm64-1.1.1.tgz", + "integrity": "sha512-dPGu1H5n8na7mBKxiXQ+FNmthDAiA57wqgpm5JMAHtcdcmRvcXwJkwWVGvwfj8ShhYJHQaSaS9oPgO+mpKkgmA==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-linux-ia32": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ia32/-/local-functions-proxy-linux-ia32-1.1.1.tgz", + "integrity": "sha512-Ra0FlXDrmPRaq+rYH3/ttkXSrwk1D5Zx/Na7UPfJZxMY7Qo5iY4bgi/FuzjzWzlp0uuKZOhYOYzYzsIIyrSvmw==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-linux-ppc64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-ppc64/-/local-functions-proxy-linux-ppc64-1.1.1.tgz", + "integrity": "sha512-oXf1satwqwUUxz7LHS1BxbRqc4FFEKIDFTls04eXiLReFR3sqv9H/QuYNTCCDMuRcCOd92qKyDfATdnxT4HR8w==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-linux-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-linux-x64/-/local-functions-proxy-linux-x64-1.1.1.tgz", + "integrity": "sha512-bS3u4JuDg/eC0y4Na3i/29JBOxrdUvsK5JSjHfzUeZEbOcuXYf4KavTpHS5uikdvTgyczoSrvbmQJ5m0FLXfLA==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-openbsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-openbsd-x64/-/local-functions-proxy-openbsd-x64-1.1.1.tgz", + "integrity": "sha512-1xLef/kLRNkBTXJ+ZGoRFcwsFxd/B2H3oeJZyXaZ3CN5umd9Mv9wZuAD74NuMt/535yRva8jtAJqvEgl9xMSdA==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-win32-ia32": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-ia32/-/local-functions-proxy-win32-ia32-1.1.1.tgz", + "integrity": "sha512-4IOMDBxp2f8VbIkhZ85zGNDrZR4ey8d68fCMSOIwitjsnKav35YrCf8UmAh3UR6CNIRJdJL4MW1GYePJ7iJ8uA==", + "dev": true, + "optional": true + }, + "@netlify/local-functions-proxy-win32-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@netlify/local-functions-proxy-win32-x64/-/local-functions-proxy-win32-x64-1.1.1.tgz", + "integrity": "sha512-VCBXBJWBujVxyo5f+3r8ovLc9I7wJqpmgDn3ixs1fvdrER5Ac+SzYwYH4mUug9HI08mzTSAKZErzKeuadSez3w==", + "dev": true, + "optional": true + }, + "@netlify/open-api": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.19.1.tgz", + "integrity": "sha512-RkucRf8o0vYhCDXCRHWU/EdhkVE3JhkqKmZFvMW6qCPD206GV2Cfo9JGSKb0NdN+nmHSNaYmd+9dvT6I9MP4pw==", + "dev": true + }, + "@netlify/plugins-list": { + "version": "6.68.0", + "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.68.0.tgz", + "integrity": "sha512-OIW7oDTXFKEyzG2DQr6ndLWjYfNnSZAKbldD2dquH3V8Q6DrbGk8Dhv6LkuGOJBgrKS25SyabYOyHIVASQjrFw==", + "dev": true + }, + "@netlify/run-utils": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-5.1.1.tgz", + "integrity": "sha512-V2B8ZB19heVKa715uOeDkztxLH7uaqZ+9U5fV7BRzbQ2514DO5Vxj9hG0irzuRLfZXZZjp/chPUesv4VVsce/A==", + "dev": true, + "requires": { + "execa": "^6.0.0" + }, + "dependencies": { + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "@netlify/serverless-functions-api": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.5.1.tgz", + "integrity": "sha512-c8RjIu+fkpfOGLaW0Z0iFG39GUK7sCa6M3Qy3fqouMpT00TaiheiyssnnDZGSLkNp4o+UtbRnITB1zuwDeHMLw==", + "dev": true + }, + "@netlify/zip-it-and-ship-it": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.13.0.tgz", + "integrity": "sha512-IK6FvXFtRuEA2sZwSmNwkfZSOA1M9tTIHLqvBaHz7h3G0qquZ6p7DMMH7UkmbkPyqp6dZTfwhZ4Stc8A6UjzJw==", + "dev": true, + "requires": { + "@babel/parser": "^7.22.5", + "@netlify/binary-info": "^1.0.0", + "@netlify/esbuild": "0.14.39", + "@netlify/serverless-functions-api": "^1.5.1", + "@vercel/nft": "^0.22.0", + "archiver": "^5.3.0", + "common-path-prefix": "^3.0.0", + "cp-file": "^10.0.0", + "es-module-lexer": "^1.0.0", + "execa": "^6.0.0", + "filter-obj": "^5.0.0", + "find-up": "^6.0.0", + "glob": "^8.0.3", + "is-builtin-module": "^3.1.0", + "is-path-inside": "^4.0.0", + "junk": "^4.0.0", + "locate-path": "^7.0.0", + "merge-options": "^3.0.4", + "minimatch": "^9.0.0", + "normalize-path": "^3.0.0", + "p-map": "^5.0.0", + "path-exists": "^5.0.0", + "precinct": "^11.0.0", + "require-package-name": "^2.0.1", + "resolve": "^2.0.0-next.1", + "semver": "^7.3.8", + "tmp-promise": "^3.0.2", + "toml": "^3.0.0", + "unixify": "^1.0.0", + "yargs": "^17.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@octokit/auth-token": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", + "dev": true, + "requires": { + "@octokit/types": "^7.0.0" + } + }, + "@octokit/core": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.1.tgz", + "integrity": "sha512-tEDxFx8E38zF3gT7sSMDrT1tGumDgsw5yPG6BBh/X+5ClIQfMH/Yqocxz1PnHx6CHyF6pxmovUTOfZAUvQ0Lvw==", + "dev": true, + "requires": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/endpoint": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", + "dev": true, + "requires": { + "@octokit/types": "^7.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", + "dev": true, + "requires": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^7.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", + "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", + "dev": true + }, + "@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "dev": true, + "requires": { + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "requires": {} + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.1.2.tgz", + "integrity": "sha512-R0oJ7j6f/AdqPLtB9qRXLO+wjI9pctUn8Ka8UGfGaFCcCv3Otx14CshQ89K4E88pmyYZS8p0rNTiprML/81jig==", + "dev": true, + "requires": { + "@octokit/types": "^9.2.3", + "deprecation": "^2.3.1" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", + "dev": true + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/request": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", + "dev": true, + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", + "dev": true, + "requires": { + "@octokit/types": "^7.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "19.0.13", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", + "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", + "dev": true, + "requires": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + } + }, + "@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true + }, + "@octokit/types": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", + "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", + "dev": true, + "requires": { + "@octokit/openapi-types": "^13.11.0" + } + }, + "@opentelemetry/api": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "dev": true + }, + "@opentelemetry/context-async-hooks": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.10.1.tgz", + "integrity": "sha512-6CC9sWOZDkUkKrAR957fmxXXlaK3uiBu5xVnuNEQ7hI7VqkUC/r0mNYIql0ouRInLz5o0HwmDuga1eXgQU7KNQ==", + "dev": true, + "requires": {} + }, + "@opentelemetry/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.10.1.tgz", + "integrity": "sha512-uBZs9poKMWX7WWHsRfaGHqvrn77D9EU5LwU8Ge3YKD/Su5Gy+T1v476l49nl1UOzEMNo4cISao3nIqQVsABB8g==", + "dev": true, + "requires": { + "@opentelemetry/semantic-conventions": "1.10.1" + } + }, + "@opentelemetry/exporter-jaeger": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.10.1.tgz", + "integrity": "sha512-bZIoSD6M7uxO19HtRJCAceAahX56LUmj5N/XQFHmoi3iFqA2JfR7bqsyHQCYbgINdiee155UejaqkNpgvjV7fw==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1", + "jaeger-client": "^3.15.0" + } + }, + "@opentelemetry/exporter-metrics-otlp-grpc": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.36.1.tgz", + "integrity": "sha512-yQPHny0Y3HIE1BSqbN82MoqqbbJeLINjL7Qf3kJwv1zt5YLUhYbn3FkqHQWS0YWpAvdjK0/OcN40SjEbVz2HRA==", + "dev": true, + "requires": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + } + }, + "@opentelemetry/exporter-metrics-otlp-http": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.36.1.tgz", + "integrity": "sha512-JcpEBwtBpNhVvmCLH3zjTPDcOld2AeI5rNglv2JrB16QCxQ5pwsOgzw7mPe/UR4u/53Ij7LIjFTOCeyVto/6aA==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + } + }, + "@opentelemetry/exporter-metrics-otlp-proto": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-proto/-/exporter-metrics-otlp-proto-0.36.1.tgz", + "integrity": "sha512-dKJRKvIiyupuZJOVCzW9wNfsK6RxkELnzCSJHzFoIwhGRXSYpbWyYrfHj4ZJZWYZiQSJ7+I8BFUa4aSkBgnO0w==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.36.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-proto-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1" + } + }, + "@opentelemetry/exporter-trace-otlp-grpc": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.36.1.tgz", + "integrity": "sha512-U2HdWvQho2VkeSAcAhkZ2wjfUb/1SKQixo5x6LNBF17ES4QYuh5+BagYxfN5FP4dbLnjZpTtFk5lj+97lfNLEw==", + "dev": true, + "requires": { + "@grpc/grpc-js": "^1.7.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + } + }, + "@opentelemetry/exporter-trace-otlp-http": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.36.1.tgz", + "integrity": "sha512-q/jKlfuKiHqltDzgzgEvXkoEJ/EyVSIAZhfiaoyBeQ49UhHCPvNTH36/hSwbGSEhKeX98WxXZK4NB/S3sUs8ig==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + } + }, + "@opentelemetry/exporter-trace-otlp-proto": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.36.1.tgz", + "integrity": "sha512-pNfrto7amygyyhmL4Kf96wuepROEecBYXSrtoXIVb1aUhUqjWLsA3/6DR3unB5EfSRA1Oq1Z9bqHfNuKqGfPNw==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "@opentelemetry/otlp-proto-exporter-base": "0.36.1", + "@opentelemetry/otlp-transformer": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + } + }, + "@opentelemetry/exporter-zipkin": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.10.1.tgz", + "integrity": "sha512-8gF8MjcFf6IhQ7vm6W4tPYtu/vQswYVzpYvk3pUSaX9BMGrwgjeXg+LpuRtaxGoiGd08/g7JjZ4sWLUaELnzWw==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + } + }, + "@opentelemetry/otlp-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.36.1.tgz", + "integrity": "sha512-fpjPwLafJIjgxY5qx7Ly74AYmRCd9spC6/jCxvEgGheg1YT4+NkfVnrfllxLRgc9wQNhDj7Y0Knp8RcmXLLVfA==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1" + } + }, + "@opentelemetry/otlp-grpc-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.36.1.tgz", + "integrity": "sha512-71TdQ3Z0D2Trq8rc2UMvky7tmIpg8kVPUhdYH3p0tNsTmbx6GDpEBOpjp2/zCFvQ0SZFVfHH2Oj2OZxZiz+FNQ==", + "dev": true, + "requires": { + "@grpc/grpc-js": "^1.7.1", + "@grpc/proto-loader": "^0.7.3", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1" + } + }, + "@opentelemetry/otlp-proto-exporter-base": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.36.1.tgz", + "integrity": "sha512-9ErknJ5fS7r2NxEFeca93H+pGWnCjZCUWsz6Stcj5/z2rgsiZGHXLz3fQoUGQz+iXjiXKkks9wxTCRgWOW+Yiw==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/otlp-exporter-base": "0.36.1", + "protobufjs": "^7.1.2" + } + }, + "@opentelemetry/otlp-transformer": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.36.1.tgz", + "integrity": "sha512-d2MomkVHBHwfsmNz6E60s/sm7gtpSjFwDzkFLm9brVq//VXzEhaEyfYSeTabdUs4BmrzhqTIogHWlcd6cOiL+w==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1" + } + }, + "@opentelemetry/propagator-b3": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.10.1.tgz", + "integrity": "sha512-YrWqU93PH8RyCmqGhtDZgyk64D+cp8XIjQsLhEgOPcOsxvxSSGXnGt46rx9Z8+WdIbJgj13Q4nV/xuh36k+O+A==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1" + } + }, + "@opentelemetry/propagator-jaeger": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.10.1.tgz", + "integrity": "sha512-qvwFfDPoBw2YQW/OsGHdLdD/rqNRGBRLz5UZR/akO21C4qwIK+lQcXbSi5ve0p2eLHnFshhNFqDmgQclOYBcmg==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1" + } + }, + "@opentelemetry/resources": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.10.1.tgz", + "integrity": "sha512-e+wwdyO44jZtsT1aqGiWMFOfN1XuP9Tv4+H0OYP3yQajBtGdsZjdSUn9UNjw46JsW0Mb+RaTxJwsb2uvfHar0g==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + } + }, + "@opentelemetry/sdk-metrics": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.10.1.tgz", + "integrity": "sha512-ARAD4e6lZhLwstwW+1HG2Q3XuYFA/t8vn10KK/mA4em1pZYKFn64c45RJZJcntxWp4wOZRbp9iL1RXsg7zIjow==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "lodash.merge": "4.6.2" + } + }, + "@opentelemetry/sdk-node": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.36.1.tgz", + "integrity": "sha512-7cRIxls3Ccg6HmzSu30R5upi0yHEizab2rm2rATrAyFV3JJ/ISA7cojmwKwYG8p4rkPNNPLOwCxI3vlLJrBnKA==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/exporter-jaeger": "1.10.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.36.1", + "@opentelemetry/exporter-trace-otlp-http": "0.36.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.36.1", + "@opentelemetry/exporter-zipkin": "1.10.1", + "@opentelemetry/instrumentation": "0.36.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/sdk-metrics": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "@opentelemetry/sdk-trace-node": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + }, + "dependencies": { + "@opentelemetry/instrumentation": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.36.1.tgz", + "integrity": "sha512-gtYErugMEF5NXVacmuE+tHFBiyB82YIiO5l8iZX9/4R4TDV8uCWdrLW5QZMqgTzPhiyOG9AITFdqhwIZMw/5lA==", + "dev": true, + "requires": { + "require-in-the-middle": "^6.0.0", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + } + }, + "require-in-the-middle": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-6.0.0.tgz", + "integrity": "sha512-+dtWQ7l2lqQDxheaG3jjyN1QI37gEwvzACSgjYi4/C2y+ZTUMeRW8BIOm+9NBKvwaMBUSZfPXVOt1skB0vBkRw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "@opentelemetry/sdk-trace-base": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.10.1.tgz", + "integrity": "sha512-jutSP5t22wrPKReJKzI5uKht4mJ4cQdF/mGFJkN+emFFsDXru9CuFv/NfUrD0jEqoaaiqjcZtPSyTzMgu9LXvw==", + "dev": true, + "requires": { + "@opentelemetry/core": "1.10.1", + "@opentelemetry/resources": "1.10.1", + "@opentelemetry/semantic-conventions": "1.10.1" + } + }, + "@opentelemetry/sdk-trace-node": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.10.1.tgz", + "integrity": "sha512-/y+s1j8rPTaKnPnbrsbYv3ygTb4hjx/1H32zqobFr85cvWX+Tt1RWmcZ51TaPAfq5uJobGFhhLh6ADI2RDvk5Q==", + "dev": true, + "requires": { + "@opentelemetry/context-async-hooks": "1.10.1", + "@opentelemetry/core": "1.10.1", + "@opentelemetry/propagator-b3": "1.10.1", + "@opentelemetry/propagator-jaeger": "1.10.1", + "@opentelemetry/sdk-trace-base": "1.10.1", + "semver": "^7.3.5" + } + }, + "@opentelemetry/semantic-conventions": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.10.1.tgz", + "integrity": "sha512-qiAueuCoN+1YEuHNXnsct9bkbroZBPd7QwQgd56YURG0LBRVHwE/lF6FOprfUvp1n1tu0O6+E3s6x+dmUndXFQ==", + "dev": true + }, + "@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true + }, + "@pnpm/network.ca-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", + "integrity": "sha512-gkINruT2KUhZLTaiHxwCOh1O4NVnFT0wLjWFBHmTz9vpKag/C/noIMJXBxFe4F0mYpUVX2puLwAieLYFg2NvoA==", + "dev": true, + "requires": { + "graceful-fs": "4.2.10" + } + }, + "@pnpm/npm-conf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz", + "integrity": "sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g==", + "dev": true, + "requires": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "dev": true + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "dev": true + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "dev": true + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "dev": true + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dev": true, + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "dev": true + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "dev": true + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "dev": true + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "dev": true + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, + "@sindresorhus/slugify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.1.1.tgz", + "integrity": "sha512-XokPHZ+q6FtQGEi1hnfvARVJJVPEhwHQTPHPPuNHaN6zcHjzYNynhhHMopa1wNPqLAFOwpsbintunEqWecXJMg==", + "dev": true, + "requires": { + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "@sindresorhus/transliterate": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.5.0.tgz", + "integrity": "sha512-/sfSkoNelLq5riqNRp5uBjHIKBi1MWZk9ubRT1WiBQuTfmDf7BeQkph2DJzRB83QagMPHk2VDjuvpy0VuwyzdA==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "lodash.deburr": "^4.1.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "@skn0tt/lambda-local": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@skn0tt/lambda-local/-/lambda-local-2.0.3.tgz", + "integrity": "sha512-7WZuCWSHeWC9Fh2FTT7lAT6yL5vDZUPxCZ51gIDdCc631CXmEJL/r7t2WMubP2CPuuRA+EnDSJrzKckwY4cz8g==", + "dev": true, + "requires": { + "commander": "^9.4.0", + "dotenv": "^16.0.2", + "winston": "^3.8.2" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + } + } + }, + "@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/node": { + "version": "16.11.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz", + "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@vercel/nft": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.1.tgz", + "integrity": "sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==", + "dev": true, + "requires": { + "@mapbox/node-pre-gyp": "^1.0.5", + "acorn": "^8.6.0", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0", + "rollup-pluginutils": "^2.8.2" + } + }, + "@xhmikosr/archive-type": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-6.0.1.tgz", + "integrity": "sha512-PB3NeJL8xARZt52yDBupK0dNPn8uIVQDe15qNehUpoeeLWCZyAOam4vGXnoZGz2N9D1VXtjievJuCsXam2TmbQ==", + "dev": true, + "requires": { + "file-type": "^18.5.0" + } + }, + "@xhmikosr/decompress": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-9.0.1.tgz", + "integrity": "sha512-9Lvlt6Qdpo9SaRQyRIXCo3lgU++eMZ68lzgjcTwtuKDrlwT635+5zsHZ1yrSx/Blc5IDuVLlPkBPj5CZkx+2+Q==", + "dev": true, + "requires": { + "@xhmikosr/decompress-tar": "^7.0.0", + "@xhmikosr/decompress-tarbz2": "^7.0.0", + "@xhmikosr/decompress-targz": "^7.0.0", + "@xhmikosr/decompress-unzip": "^6.0.0", + "graceful-fs": "^4.2.11", + "make-dir": "^4.0.0", + "strip-dirs": "^3.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + } + } + }, + "@xhmikosr/decompress-tar": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-7.0.0.tgz", + "integrity": "sha512-kyWf2hybtQVbWtB+FdRyOT+jyR5jxCNZPLqvQGB7djZj75lrpLUPEmRbyo86AtJ5OEtivpYaNWjCkqSJ8xtRWw==", + "dev": true, + "requires": { + "file-type": "^18.5.0", + "is-stream": "^3.0.0", + "tar-stream": "^3.1.4" + }, + "dependencies": { + "tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + } + } + }, + "@xhmikosr/decompress-tarbz2": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-7.0.0.tgz", + "integrity": "sha512-3QnjipYkRgh3Dee1MWDgKmANWxOQBVN4e1IwiGNe2fHYfMYTeSkVvWREt87UIoSucKUh3E95v8uGFttgTknZcA==", + "dev": true, + "requires": { + "@xhmikosr/decompress-tar": "^7.0.0", + "file-type": "^18.5.0", + "is-stream": "^3.0.0", + "seek-bzip": "^1.0.6", + "unbzip2-stream": "^1.4.3" + } + }, + "@xhmikosr/decompress-targz": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-7.0.0.tgz", + "integrity": "sha512-7BNHJl92g9OLhw89zqcFS67V1LAtm4Ex02j6OiQzuE8P7Yy9lQcyBuEL3x6v436grLdL+BcFjgbmhWxnem4GHw==", + "dev": true, + "requires": { + "@xhmikosr/decompress-tar": "^7.0.0", + "file-type": "^18.5.0", + "is-stream": "^3.0.0" + } + }, + "@xhmikosr/decompress-unzip": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-6.0.0.tgz", + "integrity": "sha512-R1HAkjXLS7RAL74YFLxYY9zYflCcYGssld9KKFDu87PnJ4h4btdhzXfSC8J5i5A2njH3oYIoCzx03RIGTH07Sg==", + "dev": true, + "requires": { + "file-type": "^18.5.0", + "get-stream": "^6.0.1", + "yauzl": "^2.10.0" + } + }, + "@xhmikosr/downloader": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-13.0.1.tgz", + "integrity": "sha512-mBvWew1kZJHfNQVVfVllMjUDwCGN9apPa0t4/z1zaUJ9MzpXjRL3w8fsfJKB8gHN/h4rik9HneKfDbh2fErN+w==", + "dev": true, + "requires": { + "@xhmikosr/archive-type": "^6.0.1", + "@xhmikosr/decompress": "^9.0.1", + "content-disposition": "^0.5.4", + "ext-name": "^5.0.0", + "file-type": "^18.5.0", + "filenamify": "^5.1.1", + "get-stream": "^6.0.1", + "got": "^12.6.1", + "merge-options": "^3.0.4", + "p-event": "^5.0.1" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true + }, + "cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "filename-reserved-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", + "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", + "dev": true + }, + "filenamify": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", + "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", + "dev": true, + "requires": { + "filename-reserved-regex": "^3.0.0", + "strip-outer": "^2.0.0", + "trim-repeated": "^2.0.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true + }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + }, + "strip-outer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", + "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", + "dev": true + }, + "trim-repeated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", + "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0" + } + } + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "all-node-versions": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/all-node-versions/-/all-node-versions-11.3.0.tgz", + "integrity": "sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==", + "dev": true, + "requires": { + "fetch-node-website": "^7.3.0", + "filter-obj": "^5.1.0", + "get-stream": "^6.0.0", + "global-cache-dir": "^4.3.1", + "is-plain-obj": "^4.1.0", + "path-exists": "^5.0.0", + "semver": "^7.3.7", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-color": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", + "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", + "dev": true + }, + "ansi-escapes": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "dev": true, + "requires": { + "type-fest": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "ansi-to-html": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.7.2.tgz", + "integrity": "sha512-v6MqmEpNlxF+POuyhKkidusCHWWkaLcGRURzivcU3I9tv7k4JVhFcnukrM5Rlk2rUywdZuzYAZ+kbZqWCnfN3g==", + "dev": true, + "requires": { + "entities": "^2.2.0" + }, + "dependencies": { + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "archiver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", + "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.0", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true + }, + "ascii-table": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz", + "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-module-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", + "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", + "dev": true + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true + }, + "avvio": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", + "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "debug": "^4.0.0", + "fastq": "^1.6.1" + } + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", + "dev": true, + "requires": { + "precond": "0.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "dev": true + }, + "better-ajv-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.2.0.tgz", + "integrity": "sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@humanwhocodes/momoa": "^2.0.2", + "chalk": "^4.1.2", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0 < 4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "requires": { + "open": "^8.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "dev": true, + "requires": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "dependencies": { + "camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bufrw": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", + "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", + "dev": true, + "requires": { + "ansi-color": "^0.2.1", + "error": "^7.0.0", + "hexer": "^1.5.0", + "xtend": "^4.0.0" + } + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "builtins": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.0.tgz", + "integrity": "sha512-aizhtbxgT1Udg0Fj6GssXshAVK+nxbtCV+1OtTrMNy67jffDFBY6CUBAkhO4owbleAx6fdbnWdpsmmcXydbzNw==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "clean-deep": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz", + "integrity": "sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==", + "dev": true, + "requires": { + "lodash.isempty": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.transform": "^4.6.0" + } + }, + "clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + } + } + }, + "cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "dev": true, + "requires": { + "string-width": "^4.2.3" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-string": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", + "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "colors-option": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-3.0.0.tgz", + "integrity": "sha512-DP3FpjsiDDvnQC1OJBsdOJZPuy7r0o6sepY2T5M3L/d2nrE23O/ErFkEqyY3ngVL1ZhTj/H0pCMNObZGkEOaaQ==", + "dev": true, + "requires": { + "chalk": "^5.0.0", + "filter-obj": "^3.0.0", + "is-plain-obj": "^4.0.0", + "jest-validate": "^27.3.1" + }, + "dependencies": { + "filter-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", + "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", + "dev": true + } + } + }, + "colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dev": true, + "requires": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "requires": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + } + } + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "requires": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "dev": true, + "requires": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "dependencies": { + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-template-dir": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz", + "integrity": "sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "graceful-fs": "^4.1.3", + "maxstache": "^1.0.0", + "maxstache-stream": "^1.0.0", + "mkdirp": "^0.5.1", + "noop2": "^2.0.0", + "pump": "^1.0.0", + "readdirp": "^2.0.0", + "run-parallel": "^1.1.4" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cp-file": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz", + "integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.10", + "nested-error-stacks": "^2.1.1", + "p-event": "^5.0.1" + } + }, + "cpy": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", + "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", + "dev": true, + "requires": { + "arrify": "^3.0.0", + "cp-file": "^9.1.0", + "globby": "^13.1.1", + "junk": "^4.0.0", + "micromatch": "^4.0.4", + "nested-error-stacks": "^2.1.0", + "p-filter": "^3.0.0", + "p-map": "^5.3.0" + }, + "dependencies": { + "cp-file": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", + "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + }, + "globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "crc-32": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", + "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.3.1" + } + }, + "crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "requires": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cron-parser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.8.1.tgz", + "integrity": "sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==", + "dev": true, + "requires": { + "luxon": "^3.2.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, + "crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "requires": { + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "dev": true + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "requires": { + "time-zone": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decache": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz", + "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==", + "dev": true, + "requires": { + "callsite": "^1.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true + }, + "detective-amd": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.1.tgz", + "integrity": "sha512-e7n0E0Wte78U9lcpl3hsTh1ZJ+zp/rgEbdbzGLgTowSbbSemuHnM8olp4KHMF1eCaurrCE50IU9VkoV13ezK4A==", + "dev": true, + "requires": { + "ast-module-types": "^5.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^5.0.0", + "node-source-walk": "^6.0.0" + } + }, + "detective-cjs": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", + "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", + "dev": true, + "requires": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.0" + } + }, + "detective-es6": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", + "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", + "dev": true, + "requires": { + "node-source-walk": "^6.0.1" + } + }, + "detective-postcss": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", + "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", + "dev": true, + "requires": { + "is-url": "^1.2.4", + "postcss": "^8.4.23", + "postcss-values-parser": "^6.0.2" + } + }, + "detective-sass": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", + "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.1" + } + }, + "detective-scss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", + "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^6.0.1" + } + }, + "detective-stylus": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", + "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", + "dev": true + }, + "detective-typescript": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.0.1.tgz", + "integrity": "sha512-pVCuFWdEAyHI16zO3NBWSAULV8pevSkX3gwK8w3y9RrBGUrig6wDvwv6vUpnu+HfOr0MDmjMkmJGNWaTb6+HkA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^5.59.2", + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.0", + "typescript": "^5.0.4" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", + "dev": true, + "requires": { + "type-fest": "^2.11.2" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-module-lexer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.0.3.tgz", + "integrity": "sha512-iC67eXHToclrlVhQfpRawDiF8D8sQxNxmbqw5oebegOaJkyx/w9C/k57/5e6yJR2zIByRt9OXdqX50DV2t6ZKw==", + "dev": true + }, + "es6-promisify": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", + "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + } + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "express-logging": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz", + "integrity": "sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==", + "dev": true, + "requires": { + "on-headers": "^1.0.0" + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "fast-content-type-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz", + "integrity": "sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==", + "dev": true + }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-equals": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz", + "integrity": "sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==", + "dev": true + }, + "fast-fifo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", + "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "fast-json-stringify": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz", + "integrity": "sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ==", + "dev": true, + "requires": { + "@fastify/deepmerge": "^1.0.0", + "ajv": "^8.10.0", + "ajv-formats": "^2.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^2.1.0", + "rfdc": "^1.2.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-querystring": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.0.0.tgz", + "integrity": "sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA==", + "dev": true, + "requires": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fast-uri": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", + "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastify": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.17.0.tgz", + "integrity": "sha512-tzuY1tgWJo2Y6qEKwmLhFvACUmr68Io2pqP/sDKU71KRM6A6R3DrCDqLGqANbeLZcKUfdfY58ut35CGqemcTgg==", + "dev": true, + "requires": { + "@fastify/ajv-compiler": "^3.5.0", + "@fastify/error": "^3.0.0", + "@fastify/fast-json-stringify-compiler": "^4.3.0", + "abstract-logging": "^2.0.1", + "avvio": "^8.2.0", + "fast-content-type-parse": "^1.0.0", + "fast-json-stringify": "^5.7.0", + "find-my-way": "^7.6.0", + "light-my-request": "^5.6.1", + "pino": "^8.5.0", + "process-warning": "^2.0.0", + "proxy-addr": "^2.0.7", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.5.0", + "semver": "^7.3.7", + "tiny-lru": "^11.0.1" + }, + "dependencies": { + "pino": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.14.1.tgz", + "integrity": "sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw==", + "dev": true, + "requires": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + } + }, + "pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", + "dev": true + }, + "process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", + "dev": true + } + } + }, + "fastify-plugin": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.4.0.tgz", + "integrity": "sha512-ovwFQG2qNy3jcCROiWpr94Hs0le+c7N/3t7m9aVwbFhkxcR/esp2xu25dP8e617HpQdmeDv+gFX4zagdUhDByw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fdir": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.0.1.tgz", + "integrity": "sha512-bdrUUb0eYQrPRlaAtlSRoLs7sp6yKEwbMQuUgwvi/14TnaqhM/deSZUrC5ic+yjm5nEPPWE61oWpTTxQFQMmLA==", + "dev": true, + "requires": {} + }, + "fecha": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", + "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "dev": true + }, + "fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "dev": true, + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "fetch-node-website": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/fetch-node-website/-/fetch-node-website-7.3.0.tgz", + "integrity": "sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==", + "dev": true, + "requires": { + "cli-progress": "^3.11.2", + "colors-option": "^4.4.0", + "figures": "^5.0.0", + "got": "^12.3.1", + "is-plain-obj": "^4.1.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true + }, + "cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, + "colors-option": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/colors-option/-/colors-option-4.5.0.tgz", + "integrity": "sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==", + "dev": true, + "requires": { + "chalk": "^5.0.1", + "is-plain-obj": "^4.1.0" + } + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true + }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + } + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + } + } + }, + "file-type": { + "version": "18.5.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.5.0.tgz", + "integrity": "sha512-yvpl5U868+V6PqXHMmsESpg6unQ5GfnPssl4dxdJudBrr9qy7Fddt7EVX1VLlddFfe8Gj9N7goCZH22FXuSQXQ==", + "dev": true, + "requires": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0", + "token-types": "^5.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", + "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", + "dev": true + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-my-way": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.6.2.tgz", + "integrity": "sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^2.0.0" + } + }, + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "flush-write-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz", + "integrity": "sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, + "folder-walker": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz", + "integrity": "sha512-VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==", + "dev": true, + "requires": { + "from2": "^2.1.0" + } + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", + "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", + "dev": true + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "dev": true, + "requires": { + "from2": "^2.0.3" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "get-amd-module-type": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", + "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", + "dev": true, + "requires": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.1" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "gh-release-fetch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-4.0.3.tgz", + "integrity": "sha512-TOiP1nwLsH5shG85Yt6v6Kjq5JU/44jXyEpbcfPgmj3C829yeXIlx9nAEwQRaxtRF3SJinn2lz7XUkfG9W/U4g==", + "dev": true, + "requires": { + "@xhmikosr/downloader": "^13.0.0", + "node-fetch": "^3.3.1", + "semver": "^7.5.3" + }, + "dependencies": { + "node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + } + } + }, + "git-repo-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", + "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", + "dev": true + }, + "gitconfiglocal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", + "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", + "dev": true, + "requires": { + "ini": "^1.3.2" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "global-cache-dir": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-4.4.0.tgz", + "integrity": "sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==", + "dev": true, + "requires": { + "cachedir": "^2.3.0", + "path-exists": "^5.0.0" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "dev": true + }, + "hasbin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/hasbin/-/hasbin-1.2.3.tgz", + "integrity": "sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==", + "dev": true, + "requires": { + "async": "~1.5" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true + } + } + }, + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "hexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", + "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", + "dev": true, + "requires": { + "ansi-color": "^0.2.1", + "minimist": "^1.1.0", + "process": "^0.10.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "process": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", + "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", + "dev": true + } + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hot-shots": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-10.0.0.tgz", + "integrity": "sha512-uy/uGpuJk7yuyiKRfZMBNkF1GAOX5O2ifO9rDCaX9jw8fu6eW9QeWC7WRPDI+O98frW1HQgV3+xwjWsZPECIzQ==", + "dev": true, + "requires": { + "unix-dgram": "2.x" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "inquirer-autocomplete-prompt": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.4.0.tgz", + "integrity": "sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "figures": "^3.2.0", + "run-async": "^2.4.0", + "rxjs": "^6.6.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "inspect-with-kind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", + "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "dependencies": { + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + } + } + }, + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true + }, + "is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + } + } + }, + "is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "iserror": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", + "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jaeger-client": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", + "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", + "dev": true, + "requires": { + "node-int64": "^0.4.0", + "opentracing": "^0.14.4", + "thriftrw": "^3.5.0", + "uuid": "^8.3.2", + "xorshift": "^1.1.1" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true + }, + "jsonwebtoken": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + } + }, + "junk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", + "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", + "dev": true + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "dev": true + }, + "keep-func-props": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/keep-func-props/-/keep-func-props-4.0.1.tgz", + "integrity": "sha512-87ftOIICfdww3SxR5P1veq3ThBNyRPG0JGL//oaR08v0k2yTicEIHd7s0GqSJfQvlb+ybC3GiDepOweo0LDhvw==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, + "latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dev": true, + "requires": { + "package-json": "^8.1.0" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "light-my-request": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", + "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", + "dev": true, + "requires": { + "cookie": "^0.5.0", + "process-warning": "^2.0.0", + "set-cookie-parser": "^2.4.1" + }, + "dependencies": { + "process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==", + "dev": true + } + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "dependencies": { + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + } + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + }, + "dependencies": { + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true + }, + "log-process-errors": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/log-process-errors/-/log-process-errors-8.0.0.tgz", + "integrity": "sha512-+SNGqNC1gCMJfhwYzAHr/YgNT/ZJc+V2nCkvtPnjrENMeCe+B/jgShBW0lmWoh6uVV2edFAPc/IUOkDdsjTbTg==", + "dev": true, + "requires": { + "colors-option": "^3.0.0", + "figures": "^4.0.0", + "filter-obj": "^3.0.0", + "jest-validate": "^27.4.2", + "map-obj": "^5.0.0", + "moize": "^6.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "figures": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + } + }, + "filter-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-3.0.0.tgz", + "integrity": "sha512-oQZM+QmVni8MsYzcq9lgTHD/qeLqaG8XaOPOW7dzuSafVxSUlH1+1ZDefj2OD9f2XsmG5lFl2Euc9NI4jgwFWg==", + "dev": true + }, + "map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true + } + } + }, + "log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "requires": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + } + }, + "log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "requires": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "requires": { + "type-fest": "^1.0.2" + } + }, + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "requires": { + "restore-cursor": "^4.0.0" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "logform": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", + "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "luxon": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", + "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", + "dev": true + }, + "macos-release": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.0.1.tgz", + "integrity": "sha512-3l6OrhdDg2H2SigtuN3jBh+5dRJRWxNKuJTPBbGeNJTsmt/pj9PO25wYaNb05NuNmAsl435j4rDP6rgNXz7s7g==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "maxstache": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz", + "integrity": "sha1-IjHVGAung9Xs/DHEX+2seuQnaYQ=", + "dev": true + }, + "maxstache-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz", + "integrity": "sha1-nH9cq35f3S2Q2oYUO06WMeoygEA=", + "dev": true, + "requires": { + "maxstache": "^1.0.0", + "pump": "^1.0.0", + "split2": "^1.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "split2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", + "integrity": "sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==", + "dev": true, + "requires": { + "through2": "~2.0.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "requires": { + "blueimp-md5": "^2.10.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dev": true, + "requires": { + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micro-api-client": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", + "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==", + "dev": true + }, + "micro-memoize": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.0.11.tgz", + "integrity": "sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "module-definition": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", + "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", + "dev": true, + "requires": { + "ast-module-types": "^5.0.0", + "node-source-walk": "^6.0.1" + } + }, + "module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "dev": true + }, + "moize": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/moize/-/moize-6.1.3.tgz", + "integrity": "sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==", + "dev": true, + "requires": { + "fast-equals": "^3.0.1", + "micro-memoize": "^4.0.11" + } + }, + "move-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", + "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", + "dev": true, + "requires": { + "path-exists": "^5.0.0" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "multiparty": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", + "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", + "dev": true, + "requires": { + "http-errors": "~1.8.1", + "safe-buffer": "5.2.1", + "uid-safe": "2.1.5" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true + }, + "netlify": { + "version": "13.1.10", + "resolved": "https://registry.npmjs.org/netlify/-/netlify-13.1.10.tgz", + "integrity": "sha512-ByFz8S08HWVKd9r/lkTahZX7xSq4IRyPCUvuaduI4GHyQaSWEdVNK1krC05vlhL9W0SzDn8Yjowh0Ru4PKrOYw==", + "dev": true, + "requires": { + "@netlify/open-api": "^2.19.1", + "lodash-es": "^4.17.21", + "micro-api-client": "^3.3.0", + "node-fetch": "^3.0.0", + "omit.js": "^2.0.2", + "p-wait-for": "^4.0.0", + "qs": "^6.9.6" + }, + "dependencies": { + "node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dev": true, + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true + }, + "p-wait-for": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz", + "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==", + "dev": true, + "requires": { + "p-timeout": "^5.0.0" + } + } + } + }, + "netlify-headers-parser": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-7.1.2.tgz", + "integrity": "sha512-DfoboA8PrcLXMan3jIVyLsQtKS+nepKDx6WwZKk5EQDMr2AJoBPCtSHTOLuABzkde1UXdOITf3snmcAmzlNLqw==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0", + "fast-safe-stringify": "^2.0.7", + "is-plain-obj": "^4.0.0", + "map-obj": "^5.0.0", + "path-exists": "^5.0.0", + "toml": "^3.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "map-obj": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz", + "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==", + "dev": true + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "netlify-redirect-parser": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-14.1.3.tgz", + "integrity": "sha512-23svKHdO2QUEJHo3knQV1EpAh8UX/+8zQmwxVMSby4/NRj5vPS+u/yKesY/uHAgcw/28HwvEUGQdbXsPPe7J/Q==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.1.1", + "filter-obj": "^5.0.0", + "is-plain-obj": "^4.0.0", + "path-exists": "^5.0.0", + "toml": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "netlify-redirector": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.4.0.tgz", + "integrity": "sha512-ssD+V9o2DD9VnilOYC+34i07IrlY8XDsh5mN+qLYA4MxCpdALKXFICcz1KzsHZabuIS5XsF1VP/HzDyx5ubJ2g==", + "dev": true + }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true + }, + "node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-source-walk": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.1.tgz", + "integrity": "sha512-QUlkJYzrNewUCp4c7CCPN8Mh8c+pwNs23JsQfHKUwIkCxYa6c0AFLuUJIZxU6BdnarfytPSGKm1YMAz06hj9cw==", + "dev": true, + "requires": { + "@babel/parser": "^7.21.8" + } + }, + "node-stream-zip": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "dev": true + }, + "node-version-alias": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/node-version-alias/-/node-version-alias-3.4.1.tgz", + "integrity": "sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==", + "dev": true, + "requires": { + "all-node-versions": "^11.3.0", + "filter-obj": "^5.1.0", + "is-plain-obj": "^4.1.0", + "normalize-node-version": "^12.4.0", + "path-exists": "^5.0.0", + "semver": "^7.3.8" + }, + "dependencies": { + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "noop2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz", + "integrity": "sha1-S2NgFemIK1R4PAK0EvaZ2MXNCls=", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-node-version": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/normalize-node-version/-/normalize-node-version-12.4.0.tgz", + "integrity": "sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==", + "dev": true, + "requires": { + "all-node-versions": "^11.3.0", + "filter-obj": "^5.1.0", + "semver": "^7.3.7" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "omit.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", + "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==", + "dev": true + }, + "on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "requires": { + "fn.name": "1.x.x" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + } + } + }, + "opentracing": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", + "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", + "dev": true + }, + "ora": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", + "dev": true, + "requires": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "requires": { + "restore-cursor": "^4.0.0" + } + }, + "restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "os-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", + "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", + "dev": true, + "requires": { + "macos-release": "^3.0.1", + "windows-release": "^5.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "requires": { + "p-timeout": "^5.0.2" + }, + "dependencies": { + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "dev": true + } + } + }, + "p-every": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-every/-/p-every-2.0.0.tgz", + "integrity": "sha512-MCz9DqD5opPC48Zsd+BHm56O/HfhYIQQtupfDzhXoVgQdg/Ux4F8/JcdRuQ+arq7zD5fB6zP3axbH3d9Nr8dlw==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "p-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", + "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "dev": true, + "requires": { + "p-map": "^5.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-map": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "dev": true, + "requires": { + "aggregate-error": "^4.0.0" + }, + "dependencies": { + "aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } + } + }, + "p-reduce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", + "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", + "dev": true + }, + "p-retry": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", + "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "dev": true, + "requires": { + "@types/retry": "0.12.1", + "retry": "^0.13.1" + } + }, + "p-wait-for": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", + "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", + "dev": true, + "requires": { + "p-timeout": "^6.0.0" + }, + "dependencies": { + "p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "dev": true + } + } + }, + "package-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", + "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "dev": true, + "requires": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.4.1.tgz", + "integrity": "sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true + }, + "cacheable-request": { + "version": "10.2.12", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", + "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + } + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true + }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + } + } + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true + }, + "parse-gitignore": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-2.0.0.tgz", + "integrity": "sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dev": true, + "requires": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "requires": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "dependencies": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "precinct": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.2.tgz", + "integrity": "sha512-UuhB1q0nEFf80iMGcs7IoT0o1GnNFWT4CjZjcMsHDXAIsW/aiLovOSbeMJ2Ejg6raRsplsriZZkoBUh0h/IHlw==", + "dev": true, + "requires": { + "@dependents/detective-less": "^4.0.0", + "commander": "^10.0.1", + "detective-amd": "^5.0.1", + "detective-cjs": "^5.0.1", + "detective-es6": "^4.0.0", + "detective-postcss": "^6.1.3", + "detective-sass": "^5.0.0", + "detective-scss": "^4.0.0", + "detective-stylus": "^4.0.0", + "detective-typescript": "^11.0.1", + "module-definition": "^5.0.0", + "node-source-walk": "^6.0.1" + } + }, + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "dev": true + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prettyjson": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", + "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", + "dev": true, + "requires": { + "colors": "1.4.0", + "minimist": "^1.2.0" + } + }, + "printj": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "protobufjs": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", + "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", + "dev": true, + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + } + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "ps-list": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.0.tgz", + "integrity": "sha512-NoGBqJe7Ou3kfQxEvDzDyKGAyEgwIuD3YrfXinjcCmBRv0hTld0Xb71hrXvtsNPj7HSFATfemvzB8PPJtq6Yag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "dev": true, + "requires": { + "escape-goat": "^4.0.0" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dev": true, + "requires": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "dependencies": { + "read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + } + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dev": true, + "requires": { + "readable-stream": "^3.6.0" + } + }, + "readdir-glob": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", + "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + } + } + }, + "regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true + }, + "registry-auth-token": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "dev": true, + "requires": { + "@pnpm/npm-conf": "^2.1.0" + } + }, + "registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "dev": true + }, + "safe-regex2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", + "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "dev": true, + "requires": { + "ret": "~0.2.0" + }, + "dependencies": { + "ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "dev": true + } + } + }, + "safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "secure-json-parse": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.6.0.tgz", + "integrity": "sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==", + "dev": true + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "requires": { + "commander": "^2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "dev": true, + "requires": { + "semver": "^7.3.5" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sonic-boom": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", + "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", + "dev": true, + "requires": { + "atomic-sleep": "^1.0.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "requires": { + "sort-keys": "^1.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "requires": { + "bl": "^5.0.0" + }, + "dependencies": { + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "streamx": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", + "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", + "dev": true, + "requires": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + } + } + }, + "strip-ansi-control-characters": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz", + "integrity": "sha512-Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==", + "dev": true + }, + "strip-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", + "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", + "dev": true, + "requires": { + "inspect-with-kind": "^1.0.5", + "is-plain-obj": "^1.1.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dev": true, + "requires": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + } + }, + "supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tabtab": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-3.0.2.tgz", + "integrity": "sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==", + "dev": true, + "requires": { + "debug": "^4.0.1", + "es6-promisify": "^6.0.0", + "inquirer": "^6.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "untildify": "^3.0.3" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "tempy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", + "dev": true, + "requires": { + "is-stream": "^3.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, + "terminal-link": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", + "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", + "dev": true, + "requires": { + "ansi-escapes": "^5.0.0", + "supports-hyperlinks": "^2.2.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "requires": { + "type-fest": "^1.0.2" + } + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, + "thread-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", + "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", + "dev": true, + "requires": { + "real-require": "^0.2.0" + } + }, + "thriftrw": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", + "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", + "dev": true, + "requires": { + "bufrw": "^1.2.1", + "error": "7.0.2", + "long": "^2.4.0" + }, + "dependencies": { + "long": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", + "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "through2-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz", + "integrity": "sha512-Ms68QPbSJKjRYY7fmqZHB0VGt+vD0/tjmDHUWgxltjifCof6hZWWeQAEi27Wjbs7jyNlIIyerQw/TVj7gHkd/Q==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true + }, + "tiny-lru": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.0.1.tgz", + "integrity": "sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "requires": { + "tmp": "^0.2.0" + }, + "dependencies": { + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-3.0.0.tgz", + "integrity": "sha512-vD2LytT6DxPynBa1xbMtswY9gGqj27wNbh2uvI5OhBe+mrGLurRWRQZyQn3812sqlQRtUJwaKVshG+PoGwbPDQ==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "dev": true, + "requires": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + } + }, + "toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "dev": true + }, + "tomlify-j0.4": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", + "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-fest": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.0.tgz", + "integrity": "sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dev": true, + "requires": { + "random-bytes": "~1.0.0" + } + }, + "ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", + "dev": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "requires": { + "crypto-random-string": "^4.0.0" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "unix-dgram": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.6.tgz", + "integrity": "sha512-AURroAsb73BZ6CdAyMrTk/hYKNj3DuYYEuOaB8bYMOHGKupRNScw90Q5C71tWJc3uE7dIeXRyuwN0xLLq3vDTg==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.16.0" + } + }, + "unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + } + } + }, + "untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", + "dev": true + }, + "update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "dev": true, + "requires": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "requires": { + "builtins": "^5.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "wait-port": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.0.4.tgz", + "integrity": "sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "commander": "^9.3.0", + "debug": "^4.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "dev": true + }, + "well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "string-width": "^5.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + } } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "windows-release": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", + "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "execa": "^5.1.1" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "winston": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", + "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", "dev": true, "requires": { - "color-name": "1.1.3" + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + } } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dev": true, + "requires": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + } + } + }, + "xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "dev": true + }, + "xorshift": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", + "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" } } } }, - "lunr-languages": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", - "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, "node-releases": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1950,12 +31780,39 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "dev": true + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -2002,6 +31859,12 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", @@ -2020,6 +31883,21 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", @@ -2136,12 +32014,24 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -2151,6 +32041,111 @@ "pify": "^2.3.0" } }, + "read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "dev": true, + "requires": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -2172,12 +32167,27 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "requires": { + "lowercase-keys": "^3.0.0" + } + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -2193,6 +32203,30 @@ "queue-microtask": "^1.2.2" } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "requires": { + "commander": "^2.8.1" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -2211,12 +32245,61 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2237,6 +32320,15 @@ "ansi-regex": "^5.0.1" } }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "requires": { + "is-natural-number": "^4.0.1" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2246,6 +32338,59 @@ "has-flag": "^4.0.0" } }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "temp-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", + "dev": true + }, + "tempy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", + "dev": true, + "requires": { + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" + }, + "dependencies": { + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2255,12 +32400,53 @@ "is-number": "^7.0.0" } }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "dev": true, + "requires": { + "crypto-random-string": "^4.0.0" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -2278,12 +32464,30 @@ "strip-ansi": "^6.0.0" } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", @@ -2312,6 +32516,22 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true } } } diff --git a/package.json b/package.json index eeb8afe194..67652f00c2 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Hugo theme for technical documentation.", "main": "none.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "serve": "netlify dev -c \"hugo serve --minify -DFE -w\"" }, "repository": { "type": "git", @@ -21,6 +22,8 @@ }, "devDependencies": { "autoprefixer": "^9.8.6", + "hugo-extended": "^0.115.2", + "netlify-cli": "^15.9.0", "postcss-cli": "^7.1.2" } } diff --git a/spin-new-glossary.md b/spin-new-glossary.md index acd8737d0d..2460b04f23 100644 --- a/spin-new-glossary.md +++ b/spin-new-glossary.md @@ -12,6 +12,12 @@ rm -rf themes/docsy git submodule add https://github.com/google/docsy.git themes/docsy ``` +Switch the docsy repo to the same changeset used in the CNCF Glossary if you want to keep the UI consistent: +``` +cd themes/docsy/ +git checkout 170cdd9 +``` + Create a .gitignore with these lines: ``` public/ @@ -25,7 +31,7 @@ Complete your local dev setup using [these instructions](https://github.com/cncf Edit `config.toml` to set title, Google Analytics, languages, copyright, social image, social links, and various other settings. -Replace favicons in in the `static/favicons` directory with your own. +Replace favicons in the `static/favicons` directory with your own. Replace `assets/icons/logo.svg` with your own logo. @@ -37,7 +43,6 @@ Edit various static copy in the `layouts` folder as needed. Replace all content in the `content/en` folder with your own glossary terms. Create a language folder for each of the translation languages you will support. Note that terms will only be listed on the site when `status: Completed` in the header of the term file. - ## Feedback buttons configuration You can configure the feedback buttons at the bottom of each page to post to your Google Analytics account. See [the instructions here](https://www.docsy.dev/docs/adding-content/feedback/#user-feedback). diff --git a/static/images/cncf-glossary-social.jpg b/static/images/cncf-glossary-social.jpg index 49e0a31151..e4ef5b988a 100644 Binary files a/static/images/cncf-glossary-social.jpg and b/static/images/cncf-glossary-social.jpg differ diff --git a/wordlist.txt b/wordlist.txt index 8e29074150..30e9d32a3c 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -29,6 +29,8 @@ cd cdn changelog chatbot +cgroup +cgroups cio cka ckad @@ -66,6 +68,7 @@ digitalocean dockerfile dockerhub docstrings +eBPF edumco emoji engineerbetter @@ -89,6 +92,7 @@ gmail gmail's hackable handoffs +HAProxy highlight html http @@ -131,13 +135,18 @@ mkdn mtls multitenancy multitenant +namespace +namespaces navbar +Nginx observability oci oliveira opencontainers orchestrator +orchestrators overdemand +overprivileged paas pathconverter pavel @@ -152,6 +161,7 @@ py pypi pyspelling ramer +RBAC rdbms readme replicable @@ -162,6 +172,7 @@ runtime runtimeerror runtimes saas +sandboxed saneheaders sbates scalability @@ -190,6 +201,7 @@ tilde tls tmp toolchain +Traefik transcodes txt ubuntu @@ -198,6 +210,8 @@ unencrypted utf valueerror vcs +verifications +verifier virtualized virtualizing vm